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
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
 
 
 
 
 
 
| Methods inherited from class org.codehaus.groovy.ast.ASTNode | 
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition | 
 
 
ElvisOperatorExpression
public ElvisOperatorExpression(Expression base,
                               Expression falseExpression)
visit
public void visit(GroovyCodeVisitor visitor)
- Overrides:
 visit in class TernaryExpression
 
 
transformExpression
public Expression transformExpression(ExpressionTransformer transformer)
- Description copied from class: 
Expression 
- Return a copy of the expression calling the transformer on any nested expressions
- Overrides:
 transformExpression in class TernaryExpression