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
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
- Author:
- Jochen Theodorou
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiontransformExpression(ExpressionTransformer transformer) Return a copy of the expression calling the transformer on any nested expressionsvoidvisit(GroovyCodeVisitor visitor) Methods inherited from class TernaryExpression
getBooleanExpression, getFalseExpression, getText, getTrueExpression, getType, toStringMethods inherited from class Expression
setType, transformExpressions, transformExpressionsMethods inherited from class AnnotatedNode
addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSynthetic
-
Constructor Details
-
ElvisOperatorExpression
-
-
Method Details
-
visit
- Overrides:
visitin classTernaryExpression
-
transformExpression
Description copied from class:ExpressionReturn a copy of the expression calling the transformer on any nested expressions- Overrides:
transformExpressionin classTernaryExpression- Parameters:
transformer-
-