[Java] Class ElvisOperatorExpression

  • 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 : 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

Constructor Detail

public ElvisOperatorExpression(Expression base, Expression falseExpression)

Method Detail

public Expression transformExpression(ExpressionTransformer transformer)

public void visit(GroovyCodeVisitor visitor)

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.4.21/html/gapi/org/codehaus/groovy/ast/expr/ElvisOperatorExpression.html