From 47581d5e17f8b2e250efd93e3056c0745a9afa56 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Mon, 10 Jan 2011 15:50:04 +0300 Subject: [PATCH] Parameter node getters --- .../jetbrains/jet/lang/psi/JetParameter.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetParameter.java b/idea/src/org/jetbrains/jet/lang/psi/JetParameter.java index be0fd9357e6..00819e39abb 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetParameter.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetParameter.java @@ -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); + } }