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
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
- author:
- Jochen Theodorou
- since:
- 1.5
Methods inherited from class ASTNode
|
getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getText, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setSourcePosition, visit |
Methods inherited from class Object
|
wait, wait, wait, hashCode, getClass, equals, toString, notify, notifyAll |
ElvisOperatorExpression
public ElvisOperatorExpression(Expression base, Expression falseExpression)
-
transformExpression
public Expression transformExpression(ExpressionTransformer transformer)
-
visit
public void visit(GroovyCodeVisitor visitor)
-
Copyright © 2003-2009 The Codehaus. All rights reserved.