Package org.codehaus.groovy.ast.expr
Class ElvisOperatorExpression
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.expr.Expression
org.codehaus.groovy.ast.expr.TernaryExpression
org.codehaus.groovy.ast.expr.ElvisOperatorExpression
- All Implemented Interfaces:
- GroovydocHolder<AnnotatedNode>,- NodeMetaDataHandler
public class ElvisOperatorExpression extends TernaryExpression
Represents a short ternary expression x ?: y, which is equal 
 to 
 
def truePart = x def booleanPart = truePart as boolean booleanPart? truePart : yEven if x is no atomic expression, x will be evaluated only once. Example:
 class Foo { 
   def index=0 
   def getX(){ index++; return index }
 }
 def foo = new Foo()
 def result = foo.x ?: "false case" 
 assert foo.index == 1
 assert result == 1 
 - Since:
- 1.5
- 
Field SummaryFields inherited from class org.codehaus.groovy.ast.expr.ExpressionEMPTY_ARRAYFields inherited from interface groovy.lang.groovydoc.GroovydocHolderDOC_COMMENT
- 
Constructor SummaryConstructors Constructor Description ElvisOperatorExpression(Expression base, Expression falseExpression)
- 
Method SummaryModifier and Type Method Description 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.TernaryExpressiongetBooleanExpression, getFalseExpression, getText, getTrueExpression, getType, toStringMethods inherited from class org.codehaus.groovy.ast.expr.ExpressionsetType, transformExpressions, transformExpressionsMethods inherited from class org.codehaus.groovy.ast.AnnotatedNodeaddAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSyntheticMethods inherited from class org.codehaus.groovy.ast.ASTNodecopyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePositionMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandlercopyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setNodeMetaData
- 
Constructor Details- 
ElvisOperatorExpression
 
- 
- 
Method Details- 
visit- Overrides:
- visitin class- TernaryExpression
 
- 
transformExpressionDescription copied from class:ExpressionReturn a copy of the expression calling the transformer on any nested expressions- Overrides:
- transformExpressionin class- TernaryExpression
 
 
-