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
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 : 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
- Author:
- Jochen Theodorou
ElvisOperatorExpression
public ElvisOperatorExpression(Expression base,
Expression falseExpression)
visit
public void visit(GroovyCodeVisitor visitor)
- Overrides:
visit
in class TernaryExpression
transformExpression
public Expression transformExpression(ExpressionTransformer transformer)
- Description copied from class:
Expression
- Return a copy of the expression calling the transformer on any nested expressions
- Overrides:
transformExpression
in class TernaryExpression