org.codehaus.groovy.ast.expr
[Java] 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
- Authors:
- Jochen Theodorou
- Since:
- 1.5
Methods inherited from class ASTNode
|
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, getText, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition, visit |
Methods inherited from class java.lang.Object
|
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
ElvisOperatorExpression
public ElvisOperatorExpression(Expression base, Expression falseExpression)
-
transformExpression
public Expression transformExpression(ExpressionTransformer transformer)
-
visit
public void visit(GroovyCodeVisitor visitor)
-
Groovy Documentation