public class ElvisOperatorExpression extends TernaryExpression
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
| Constructor | Description |
|---|---|
ElvisOperatorExpression(Expression base,
Expression falseExpression) |
| Modifier and Type | Method | Description |
|---|---|---|
Expression |
transformExpression(ExpressionTransformer transformer) |
Return a copy of the expression calling the transformer on any nested expressions
|
void |
visit(GroovyCodeVisitor visitor) |
addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSyntheticcopyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePositionsetType, transformExpressions, transformExpressionsclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetBooleanExpression, getFalseExpression, getText, getTrueExpression, getType, toStringpublic ElvisOperatorExpression(Expression base, Expression falseExpression)
public void visit(GroovyCodeVisitor visitor)
visit in class TernaryExpressionpublic Expression transformExpression(ExpressionTransformer transformer)
ExpressiontransformExpression in class TernaryExpression