Class 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