diff --git a/idea/src/org/jetbrains/jet/JetNodeTypes.java b/idea/src/org/jetbrains/jet/JetNodeTypes.java index b046a3dfb64..df3d5c76355 100644 --- a/idea/src/org/jetbrains/jet/JetNodeTypes.java +++ b/idea/src/org/jetbrains/jet/JetNodeTypes.java @@ -38,7 +38,7 @@ public interface JetNodeTypes { JetNodeType PRIMARY_CONSTRUCTOR_PARAMETER = new JetNodeType("PRIMARY_CONSTRUCTOR_PARAMETER", JetParameter.class); JetNodeType CLASS_BODY = new JetNodeType("CLASS_BODY", JetClassBody.class); JetNodeType IMPORT_DIRECTIVE = new JetNodeType("IMPORT_DIRECTIVE", JetImportDirective.class); - JetNodeType IMPORTED = new JetNodeType("IMPORTED"); + JetNodeType IMPORTED = new JetNodeType("IMPORTED"); // TODO: ??? JetNodeType NAMESPACE_BODY = new JetNodeType("NAMESPACE_BODY", JetNamespaceBody.class); JetNodeType MODIFIER_LIST = new JetNodeType("MODIFIER_LIST", JetModifierList.class); JetNodeType ATTRIBUTE_ANNOTATION = new JetNodeType("ATTRIBUTE_ANNOTATION", JetAttributeAnnotation.class); diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetImportDirective.java b/idea/src/org/jetbrains/jet/lang/psi/JetImportDirective.java index ab5d4a903b3..b8a050507bc 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetImportDirective.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetImportDirective.java @@ -1,7 +1,10 @@ package org.jetbrains.jet.lang.psi; import com.intellij.lang.ASTNode; +import com.intellij.psi.tree.IElementType; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lexer.JetTokens; /** * @author max @@ -15,4 +18,39 @@ public class JetImportDirective extends JetElement { public void accept(@NotNull JetVisitor visitor) { visitor.visitImportDirective(this); } + + public String getImportedName() { + StringBuilder answer = new StringBuilder(); + ASTNode childNode = getNode().getFirstChildNode(); + while (childNode != null) { + IElementType tt = childNode.getElementType(); + if (tt == JetTokens.MAP || tt == JetTokens.AS_KEYWORD) break; + if (tt == JetTokens.IDENTIFIER || tt == JetTokens.DOT) { + answer.append(childNode.getText()); + } + childNode = childNode.getTreeNext(); + } + return answer.toString(); + } + + @Nullable + public String getAliasName() { + boolean asPassed = false; + ASTNode childNode = getNode().getFirstChildNode(); + while (childNode != null) { + IElementType tt = childNode.getElementType(); + if (tt == JetTokens.AS_KEYWORD) asPassed = true; + if (asPassed && tt == JetTokens.IDENTIFIER) { + return childNode.getText(); + } + + childNode = childNode.getTreeNext(); + } + + return null; + } + + public boolean isAllUnder() { + return getNode().findChildByType(JetTokens.MAP) != null; + } }