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 todef truePart = x def booleanPart = truePart as boolean booleanPart? truePart : y Even 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 Summary- 
Fields inherited from class org.codehaus.groovy.ast.expr.ExpressionEMPTY_ARRAY
 - 
Fields inherited from interface groovy.lang.groovydoc.GroovydocHolderDOC_COMMENT
 
- 
 - 
Constructor SummaryConstructors Constructor Description ElvisOperatorExpression(Expression base, Expression falseExpression)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier 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, toString
 - 
Methods inherited from class org.codehaus.groovy.ast.expr.ExpressionsetType, transformExpressions, transformExpressions
 - 
Methods inherited from class org.codehaus.groovy.ast.AnnotatedNodeaddAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSynthetic
 - 
Methods inherited from class org.codehaus.groovy.ast.ASTNodecopyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePosition
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandlercopyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setNodeMetaData
 
- 
 
- 
- 
- 
Constructor Detail- 
ElvisOperatorExpressionpublic ElvisOperatorExpression(Expression base, Expression falseExpression) 
 
- 
 - 
Method Detail- 
visitpublic void visit(GroovyCodeVisitor visitor) - Overrides:
- visitin class- TernaryExpression
 
 - 
transformExpressionpublic Expression transformExpression(ExpressionTransformer transformer) Description copied from class:ExpressionReturn a copy of the expression calling the transformer on any nested expressions- Overrides:
- transformExpressionin class- TernaryExpression
 
 
- 
 
-