Package org.codehaus.groovy.ast.expr
Class VariableExpression
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.expr.Expression
org.codehaus.groovy.ast.expr.VariableExpression
- All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>,NodeMetaDataHandler,Variable
public class VariableExpression extends Expression implements Variable
Represents a local variable name, the simplest form of expression. e.g. "foo".
-
Field Summary
Fields Modifier and Type Field Description static VariableExpressionSUPER_EXPRESSIONstatic VariableExpressionTHIS_EXPRESSIONFields inherited from class org.codehaus.groovy.ast.expr.Expression
EMPTY_ARRAYFields inherited from interface groovy.lang.groovydoc.GroovydocHolder
DOC_COMMENT -
Constructor Summary
Constructors Constructor Description VariableExpression(java.lang.String variable)VariableExpression(java.lang.String name, ClassNode type)VariableExpression(Variable variable) -
Method Summary
Modifier and Type Method Description VariablegetAccessedVariable()ExpressiongetInitialExpression()expression used to initialize the variable or null of there is no initialization.intgetModifiers()java.lang.StringgetName()the name of the variableClassNodegetOriginType()Returns the type which was used when this variable expression was created.java.lang.StringgetText()ClassNodegetType()the type of the variablebooleanhasInitialExpression()returns true if there is an initialization expressionbooleanisClosureSharedVariable()Tells if this variable or the accessed variable is used in a closure context, like in the following example :booleanisDynamicTyped()booleanisInStaticContext()returns true if this variable is used in a static context.booleanisSuperExpression()booleanisThisExpression()booleanisUseReferenceDirectly()For internal use only.voidsetAccessedVariable(Variable origin)voidsetClosureSharedVariable(boolean inClosure)Use this method to tell if a variable is used in a closure, like in the following example:voidsetInStaticContext(boolean inStaticContext)voidsetModifiers(int modifiers)voidsetType(ClassNode cn)Set the type of this variable.voidsetUseReferenceDirectly(boolean useRef)For internal use only.java.lang.StringtoString()ExpressiontransformExpression(ExpressionTransformer transformer)Return a copy of the expression calling the transformer on any nested expressionsvoidvisit(GroovyCodeVisitor visitor)Methods inherited from class org.codehaus.groovy.ast.expr.Expression
transformExpressions, transformExpressionsMethods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSyntheticMethods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePositionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Field Details
-
THIS_EXPRESSION
-
SUPER_EXPRESSION
-
-
Constructor Details
-
VariableExpression
-
VariableExpression
public VariableExpression(java.lang.String variable) -
VariableExpression
-
-
Method Details
-
getAccessedVariable
-
setAccessedVariable
-
visit
-
transformExpression
Description copied from class:ExpressionReturn a copy of the expression calling the transformer on any nested expressions- Specified by:
transformExpressionin classExpression
-
getText
public java.lang.String getText() -
getName
public java.lang.String getName()Description copied from interface:Variablethe name of the variable -
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
getInitialExpression
Description copied from interface:Variableexpression used to initialize the variable or null of there is no initialization.- Specified by:
getInitialExpressionin interfaceVariable
-
hasInitialExpression
public boolean hasInitialExpression()Description copied from interface:Variablereturns true if there is an initialization expression- Specified by:
hasInitialExpressionin interfaceVariable
-
isInStaticContext
public boolean isInStaticContext()Description copied from interface:Variablereturns true if this variable is used in a static context. A static context is any static initializer block, when this variable is declared as static or when this variable is used in a static method- Specified by:
isInStaticContextin interfaceVariable
-
setInStaticContext
public void setInStaticContext(boolean inStaticContext) -
setType
Set the type of this variable. If you call this method from an AST transformation and that theaccessed variableis (shared, this operation is unsafe and may lead to a verify error at compile time. Instead, set the type of theaccessed variable- Overrides:
setTypein classExpression- Parameters:
cn- the type to be set on this variable
-
isDynamicTyped
public boolean isDynamicTyped()- Specified by:
isDynamicTypedin interfaceVariable
-
getModifiers
public int getModifiers()- Specified by:
getModifiersin interfaceVariable
-
setUseReferenceDirectly
public void setUseReferenceDirectly(boolean useRef)For internal use only. This flag is used by compiler internals and should probably be converted to a node metadata in future.- Parameters:
useRef-
-
isUseReferenceDirectly
public boolean isUseReferenceDirectly()For internal use only. This flag is used by compiler internals and should probably be converted to a node metadata in future. -
getType
Description copied from interface:Variablethe type of the variable- Specified by:
getTypein interfaceVariable- Overrides:
getTypein classExpression
-
getOriginType
Returns the type which was used when this variable expression was created. For example,getType()may return a boxed type while this method would return the primitive type.- Specified by:
getOriginTypein interfaceVariable- Returns:
- the type which was used to define this variable expression
-
isThisExpression
public boolean isThisExpression() -
isSuperExpression
public boolean isSuperExpression() -
setModifiers
public void setModifiers(int modifiers)
-