Parameter node getters

This commit is contained in:
Maxim Shafirov
2011-01-10 15:50:04 +03:00
parent a2f1ddbc73
commit 47581d5e17
@@ -4,6 +4,7 @@ import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetNodeTypes;
import org.jetbrains.jet.lexer.JetTokens;
/**
* @author max
@@ -22,4 +23,29 @@ public class JetParameter extends JetNamedDeclaration {
public JetTypeReference getTypeReference() {
return (JetTypeReference) findChildByType(JetNodeTypes.TYPE_REFERENCE);
}
@Nullable
public JetExpression getDefaultValue() {
boolean passedEQ = false;
ASTNode child = getNode().getFirstChildNode();
while (child != null) {
if (child.getElementType() == JetTokens.EQ) passedEQ = true;
if (passedEQ && child.getPsi() instanceof JetExpression) {
return (JetExpression) child.getPsi();
}
child = child.getTreeNext();
}
return null;
}
public boolean isOut() {
JetModifierList modifierList = getModifierList();
return modifierList != null && modifierList.hasModifier(JetTokens.OUT_KEYWORD);
}
public boolean isRef() {
JetModifierList modifierList = getModifierList();
return modifierList != null && modifierList.hasModifier(JetTokens.REF_KEYWORD);
}
}