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;
import com.intellij.psi.stubs.StubElement;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetImportDirective;
import org.jetbrains.jet.lang.resolve.name.Name;
public interface PsiJetImportDirectiveStub extends StubElement<JetImportDirective> {
boolean isAbsoluteInRootPackage();
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.StubInputStream;
import com.intellij.psi.stubs.StubOutputStream;
import com.intellij.util.io.StringRef;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetImportDirective;
@@ -34,13 +35,15 @@ public class JetImportDirectiveElementType extends JetStubElementType<PsiJetImpo
@Override
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
public void serialize(@NotNull PsiJetImportDirectiveStub stub, @NotNull StubOutputStream dataStream) throws IOException {
dataStream.writeBoolean(stub.isAbsoluteInRootPackage());
dataStream.writeBoolean(stub.isAllUnder());
dataStream.writeName(stub.getAliasName());
}
@NotNull
@@ -48,6 +51,7 @@ public class JetImportDirectiveElementType extends JetStubElementType<PsiJetImpo
public PsiJetImportDirectiveStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
boolean isAbsoluteInRootPackage = 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.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.stubs.PsiJetImportDirectiveStub;
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 {
private final boolean isAbsoluteInRootPackage;
private final boolean isAllUnder;
@Nullable
private final StringRef aliasName;
public PsiJetImportDirectiveStubImpl(
StubElement parent,
boolean isAbsoluteInRootPackage,
boolean isAllUnder
boolean isAllUnder,
@Nullable StringRef aliasName
) {
super(parent, JetStubElementTypes.IMPORT_DIRECTIVE);
this.isAbsoluteInRootPackage = isAbsoluteInRootPackage;
this.isAllUnder = isAllUnder;
this.aliasName = aliasName;
}
@Override
@@ -45,4 +51,10 @@ public class PsiJetImportDirectiveStubImpl extends StubBase<JetImportDirective>
public boolean isAllUnder() {
return isAllUnder;
}
@Nullable
@Override
public String getAliasName() {
return StringRef.toString(aliasName);
}
}