Add aliasName to PsiJetImportDirectiveStub

This commit is contained in:
Pavel V. Talanov
2014-03-28 20:58:19 +04:00
parent 440441899b
commit abcff9c3a1
3 changed files with 23 additions and 3 deletions
@@ -17,9 +17,13 @@
package org.jetbrains.jet.lang.psi.stubs; package org.jetbrains.jet.lang.psi.stubs;
import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.StubElement;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetImportDirective; import org.jetbrains.jet.lang.psi.JetImportDirective;
import org.jetbrains.jet.lang.resolve.name.Name;
public interface PsiJetImportDirectiveStub extends StubElement<JetImportDirective> { public interface PsiJetImportDirectiveStub extends StubElement<JetImportDirective> {
boolean isAbsoluteInRootPackage(); boolean isAbsoluteInRootPackage();
boolean isAllUnder(); boolean isAllUnder();
@Nullable
String getAliasName();
} }
@@ -19,6 +19,7 @@ package org.jetbrains.jet.lang.psi.stubs.elements;
import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.StubElement;
import com.intellij.psi.stubs.StubInputStream; import com.intellij.psi.stubs.StubInputStream;
import com.intellij.psi.stubs.StubOutputStream; import com.intellij.psi.stubs.StubOutputStream;
import com.intellij.util.io.StringRef;
import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetImportDirective; import org.jetbrains.jet.lang.psi.JetImportDirective;
@@ -34,13 +35,15 @@ public class JetImportDirectiveElementType extends JetStubElementType<PsiJetImpo
@Override @Override
public PsiJetImportDirectiveStub createStub(@NotNull JetImportDirective psi, StubElement parentStub) { public PsiJetImportDirectiveStub createStub(@NotNull JetImportDirective psi, StubElement parentStub) {
return new PsiJetImportDirectiveStubImpl(parentStub, psi.isAbsoluteInRootPackage(), psi.isAllUnder()); StringRef aliasName = StringRef.fromString(psi.getAliasName());
return new PsiJetImportDirectiveStubImpl(parentStub, psi.isAbsoluteInRootPackage(), psi.isAllUnder(), aliasName);
} }
@Override @Override
public void serialize(@NotNull PsiJetImportDirectiveStub stub, @NotNull StubOutputStream dataStream) throws IOException { public void serialize(@NotNull PsiJetImportDirectiveStub stub, @NotNull StubOutputStream dataStream) throws IOException {
dataStream.writeBoolean(stub.isAbsoluteInRootPackage()); dataStream.writeBoolean(stub.isAbsoluteInRootPackage());
dataStream.writeBoolean(stub.isAllUnder()); dataStream.writeBoolean(stub.isAllUnder());
dataStream.writeName(stub.getAliasName());
} }
@NotNull @NotNull
@@ -48,6 +51,7 @@ public class JetImportDirectiveElementType extends JetStubElementType<PsiJetImpo
public PsiJetImportDirectiveStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException { public PsiJetImportDirectiveStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
boolean isAbsoluteInRootPackage = dataStream.readBoolean(); boolean isAbsoluteInRootPackage = dataStream.readBoolean();
boolean isAllUnder = dataStream.readBoolean(); boolean isAllUnder = dataStream.readBoolean();
return new PsiJetImportDirectiveStubImpl(parentStub, isAbsoluteInRootPackage, isAllUnder); StringRef aliasName = dataStream.readName();
return new PsiJetImportDirectiveStubImpl(parentStub, isAbsoluteInRootPackage, isAllUnder, aliasName);
} }
} }
@@ -18,6 +18,8 @@ package org.jetbrains.jet.lang.psi.stubs.impl;
import com.intellij.psi.stubs.StubBase; import com.intellij.psi.stubs.StubBase;
import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.StubElement;
import com.intellij.util.io.StringRef;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetImportDirective; import org.jetbrains.jet.lang.psi.JetImportDirective;
import org.jetbrains.jet.lang.psi.stubs.PsiJetImportDirectiveStub; import org.jetbrains.jet.lang.psi.stubs.PsiJetImportDirectiveStub;
import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes; import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
@@ -25,15 +27,19 @@ import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
public class PsiJetImportDirectiveStubImpl extends StubBase<JetImportDirective> implements PsiJetImportDirectiveStub { public class PsiJetImportDirectiveStubImpl extends StubBase<JetImportDirective> implements PsiJetImportDirectiveStub {
private final boolean isAbsoluteInRootPackage; private final boolean isAbsoluteInRootPackage;
private final boolean isAllUnder; private final boolean isAllUnder;
@Nullable
private final StringRef aliasName;
public PsiJetImportDirectiveStubImpl( public PsiJetImportDirectiveStubImpl(
StubElement parent, StubElement parent,
boolean isAbsoluteInRootPackage, boolean isAbsoluteInRootPackage,
boolean isAllUnder boolean isAllUnder,
@Nullable StringRef aliasName
) { ) {
super(parent, JetStubElementTypes.IMPORT_DIRECTIVE); super(parent, JetStubElementTypes.IMPORT_DIRECTIVE);
this.isAbsoluteInRootPackage = isAbsoluteInRootPackage; this.isAbsoluteInRootPackage = isAbsoluteInRootPackage;
this.isAllUnder = isAllUnder; this.isAllUnder = isAllUnder;
this.aliasName = aliasName;
} }
@Override @Override
@@ -45,4 +51,10 @@ public class PsiJetImportDirectiveStubImpl extends StubBase<JetImportDirective>
public boolean isAllUnder() { public boolean isAllUnder() {
return isAllUnder; return isAllUnder;
} }
@Nullable
@Override
public String getAliasName() {
return StringRef.toString(aliasName);
}
} }