UserType getters re-implemented

This commit is contained in:
Maxim Shafirov
2011-01-11 18:09:13 +03:00
parent dfc03a5f30
commit 853e612b11
@@ -1,7 +1,6 @@
package org.jetbrains.jet.lang.psi; package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode; import com.intellij.lang.ASTNode;
import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetNodeTypes; import org.jetbrains.jet.JetNodeTypes;
@@ -23,18 +22,24 @@ public class JetUserType extends JetTypeElement {
visitor.visitUserType(this); visitor.visitUserType(this);
} }
@NotNull public boolean isAbsoluteInRootNamespace() {
return findChildByType(JetTokens.NAMESPACE_KEYWORD) != null;
}
@Nullable
public JetUserType getQualifierType() {
return (JetUserType) findChildByType(JetNodeTypes.USER_TYPE);
}
@Nullable @IfNotParsed
public ASTNode getTypeNameNode() {
return getNode().findChildByType(JetTokens.IDENTIFIER);
}
@Nullable @IfNotParsed
public String getReferencedName() { public String getReferencedName() {
StringBuilder answer = new StringBuilder(); ASTNode nameNode = getTypeNameNode();
ASTNode childNode = getNode().getFirstChildNode(); return nameNode != null ? nameNode.getText() : null;
while (childNode != null) {
IElementType tt = childNode.getElementType();
if (tt == JetTokens.IDENTIFIER || tt == JetTokens.DOT || tt == JetTokens.NAMESPACE_KEYWORD) {
answer.append(childNode.getText());
}
childNode = childNode.getTreeNext();
}
return answer.toString();
} }
@Nullable @Nullable