Add hasValueArguments() to PsiJetAnnotationEntryStub

This commit is contained in:
Pavel V. Talanov
2014-04-07 17:20:36 +04:00
parent 12d701b071
commit f0a36ae4e0
3 changed files with 19 additions and 8 deletions
@@ -17,8 +17,12 @@
package org.jetbrains.jet.lang.psi.stubs;
import com.intellij.psi.stubs.StubElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetAnnotationEntry;
public interface PsiJetAnnotationEntryStub extends StubElement<JetAnnotationEntry> {
String getShortName();
@NotNull
String getShortName();
boolean hasValueArguments();
}
@@ -41,19 +41,22 @@ public class JetAnnotationEntryElementType extends JetStubElementType<PsiJetAnno
public PsiJetAnnotationEntryStub createStub(@NotNull JetAnnotationEntry psi, StubElement parentStub) {
Name shortName = JetPsiUtil.getShortName(psi);
String resultName = shortName != null ? shortName.asString() : psi.getText();
return new PsiJetAnnotationEntryStubImpl(parentStub, resultName);
boolean hasValueArguments = psi.getValueArgumentList() != null;
return new PsiJetAnnotationEntryStubImpl(parentStub, StringRef.fromString(resultName), hasValueArguments);
}
@Override
public void serialize(@NotNull PsiJetAnnotationEntryStub stub, @NotNull StubOutputStream dataStream) throws IOException {
dataStream.writeName(stub.getShortName());
dataStream.writeBoolean(stub.hasValueArguments());
}
@NotNull
@Override
public PsiJetAnnotationEntryStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
StringRef text = dataStream.readName();
return new PsiJetAnnotationEntryStubImpl(parentStub, text);
boolean hasValueArguments = dataStream.readBoolean();
return new PsiJetAnnotationEntryStubImpl(parentStub, text, hasValueArguments);
}
@Override
@@ -26,21 +26,25 @@ import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
public class PsiJetAnnotationEntryStubImpl extends StubBase<JetAnnotationEntry> implements PsiJetAnnotationEntryStub {
private final StringRef shortName;
private final boolean hasValueArguments;
public PsiJetAnnotationEntryStubImpl(StubElement parent, @NotNull String shortName) {
this(parent, StringRef.fromString(shortName));
}
public PsiJetAnnotationEntryStubImpl(StubElement parent, StringRef shortName) {
public PsiJetAnnotationEntryStubImpl(StubElement parent, @NotNull StringRef shortName, boolean hasValueArguments) {
super(parent, JetStubElementTypes.ANNOTATION_ENTRY);
this.shortName = shortName;
this.hasValueArguments = hasValueArguments;
}
@NotNull
@Override
public String getShortName() {
return shortName.getString();
}
@Override
public boolean hasValueArguments() {
return hasValueArguments;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();