Add isValid() to PsiJetImportDirectiveStub

This commit is contained in:
Pavel V. Talanov
2014-05-13 20:51:52 +04:00
parent fedbe424df
commit 2858552ba2
4 changed files with 16 additions and 4 deletions
@@ -120,7 +120,7 @@ public class JetImportDirective extends JetElementImplStub<PsiJetImportDirective
return new ImportPath(importFqn, isAllUnder(), alias); return new ImportPath(importFqn, isAllUnder(), alias);
} }
private boolean isValidImport() { public boolean isValidImport() {
return !PsiTreeUtil.hasErrorElements(this); return !PsiTreeUtil.hasErrorElements(this);
} }
@@ -26,4 +26,5 @@ public interface PsiJetImportDirectiveStub extends StubElement<JetImportDirectiv
boolean isAllUnder(); boolean isAllUnder();
@Nullable @Nullable
String getAliasName(); String getAliasName();
boolean isValid();
} }
@@ -36,7 +36,8 @@ public class JetImportDirectiveElementType extends JetStubElementType<PsiJetImpo
@Override @Override
public PsiJetImportDirectiveStub createStub(@NotNull JetImportDirective psi, StubElement parentStub) { public PsiJetImportDirectiveStub createStub(@NotNull JetImportDirective psi, StubElement parentStub) {
StringRef aliasName = StringRef.fromString(psi.getAliasName()); StringRef aliasName = StringRef.fromString(psi.getAliasName());
return new PsiJetImportDirectiveStubImpl(parentStub, psi.isAbsoluteInRootPackage(), psi.isAllUnder(), aliasName); return new PsiJetImportDirectiveStubImpl(parentStub, psi.isAbsoluteInRootPackage(), psi.isAllUnder(),
aliasName, psi.isValidImport());
} }
@Override @Override
@@ -44,6 +45,7 @@ public class JetImportDirectiveElementType extends JetStubElementType<PsiJetImpo
dataStream.writeBoolean(stub.isAbsoluteInRootPackage()); dataStream.writeBoolean(stub.isAbsoluteInRootPackage());
dataStream.writeBoolean(stub.isAllUnder()); dataStream.writeBoolean(stub.isAllUnder());
dataStream.writeName(stub.getAliasName()); dataStream.writeName(stub.getAliasName());
dataStream.writeBoolean(stub.isValid());
} }
@NotNull @NotNull
@@ -52,6 +54,7 @@ public class JetImportDirectiveElementType extends JetStubElementType<PsiJetImpo
boolean isAbsoluteInRootPackage = dataStream.readBoolean(); boolean isAbsoluteInRootPackage = dataStream.readBoolean();
boolean isAllUnder = dataStream.readBoolean(); boolean isAllUnder = dataStream.readBoolean();
StringRef aliasName = dataStream.readName(); StringRef aliasName = dataStream.readName();
return new PsiJetImportDirectiveStubImpl(parentStub, isAbsoluteInRootPackage, isAllUnder, aliasName); boolean isValid = dataStream.readBoolean();
return new PsiJetImportDirectiveStubImpl(parentStub, isAbsoluteInRootPackage, isAllUnder, aliasName, isValid);
} }
} }
@@ -29,17 +29,20 @@ public class PsiJetImportDirectiveStubImpl extends StubBase<JetImportDirective>
private final boolean isAllUnder; private final boolean isAllUnder;
@Nullable @Nullable
private final StringRef aliasName; private final StringRef aliasName;
private final boolean isValid;
public PsiJetImportDirectiveStubImpl( public PsiJetImportDirectiveStubImpl(
StubElement parent, StubElement parent,
boolean isAbsoluteInRootPackage, boolean isAbsoluteInRootPackage,
boolean isAllUnder, boolean isAllUnder,
@Nullable StringRef aliasName @Nullable StringRef aliasName,
boolean isValid
) { ) {
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; this.aliasName = aliasName;
this.isValid = isValid;
} }
@Override @Override
@@ -57,4 +60,9 @@ public class PsiJetImportDirectiveStubImpl extends StubBase<JetImportDirective>
public String getAliasName() { public String getAliasName() {
return StringRef.toString(aliasName); return StringRef.toString(aliasName);
} }
@Override
public boolean isValid() {
return isValid;
}
} }