org.codehaus.groovy.ast.expr
Class BinaryExpression

java.lang.Object
  extended byorg.codehaus.groovy.ast.ASTNode
      extended byorg.codehaus.groovy.ast.expr.Expression
          extended byorg.codehaus.groovy.ast.expr.BinaryExpression

public class BinaryExpression
extends Expression

Represents two expressions and an operation

Version:
$Revision: 1.8 $
Author:
James Strachan

Field Summary
private  Expression leftExpression
           
private  Token operation
           
private  Expression rightExpression
           
 
Fields inherited from class org.codehaus.groovy.ast.expr.Expression
failure, type, typeClass, typeResolved
 
Fields inherited from class org.codehaus.groovy.ast.ASTNode
EMPTY_STRING_ARRAY
 
Constructor Summary
BinaryExpression(Expression leftExpression, Token operation, Expression rightExpression)
           
 
Method Summary
private static java.lang.Class chooseWiderNumberType(java.lang.String lefts, java.lang.String rights)
           
 Expression getLeftExpression()
           
private static java.lang.Class getObjectClassForNumber(java.lang.String type)
           
 Token getOperation()
           
 Expression getRightExpression()
           
 java.lang.String getText()
           
 java.lang.Class getTypeClass()
           
private static boolean isBigDecimal(java.lang.Class cls)
           
private static boolean isBigInteger(java.lang.Class cls)
           
 boolean isDynamic()
          true if the datatype can be changed, false otherwise.
private static boolean isFloatingPoint(java.lang.Class cls)
           
private static boolean isInteger(java.lang.Class cls)
           
private static boolean isLong(java.lang.Class cls)
           
private static boolean isNumber(java.lang.String type)
           
static BinaryExpression newAssignmentExpression(java.lang.String variable, Expression rhs)
          Creates an assignment expression in which the specified expression is written into the specified variable name.
static BinaryExpression newInitializationExpression(java.lang.String variable, Type type, Expression rhs)
          Creates variable initialization expression in which the specified expression is written into the specified variable name.
private  java.lang.Class resolveThisType(Token operation)
           
protected  void resolveType(AsmClassGenerator resolver)
           
 void setLeftExpression(Expression leftExpression)
           
 void setRightExpression(Expression rightExpression)
           
 java.lang.String toString()
           
 Expression transformExpression(ExpressionTransformer transformer)
          Return a copy of the expression calling the transformer on any nested expressions
 void visit(GroovyCodeVisitor visitor)
           
 
Methods inherited from class org.codehaus.groovy.ast.expr.Expression
getFailure, getType, isResolveFailed, isTypeResolved, resolve, setFailure, setResolveFailed, setType, setTypeClass, setTypeResolved, shouldContinue, transformExpressions
 
Methods inherited from class org.codehaus.groovy.ast.ASTNode
getColumnNumber, getLineNumber, setColumnNumber, setCSTNode, setLineNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

leftExpression

private Expression leftExpression

rightExpression

private Expression rightExpression

operation

private Token operation
Constructor Detail

BinaryExpression

public BinaryExpression(Expression leftExpression,
                        Token operation,
                        Expression rightExpression)
Method Detail

getTypeClass

public java.lang.Class getTypeClass()
Overrides:
getTypeClass in class Expression

isDynamic

public boolean isDynamic()
Description copied from class: Expression
true if the datatype can be changed, false otherwise.

Overrides:
isDynamic in class Expression
Returns:

resolveThisType

private java.lang.Class resolveThisType(Token operation)

isNumber

private static boolean isNumber(java.lang.String type)

getObjectClassForNumber

private static java.lang.Class getObjectClassForNumber(java.lang.String type)

isFloatingPoint

private static boolean isFloatingPoint(java.lang.Class cls)

isInteger

private static boolean isInteger(java.lang.Class cls)

isLong

private static boolean isLong(java.lang.Class cls)

isBigDecimal

private static boolean isBigDecimal(java.lang.Class cls)

isBigInteger

private static boolean isBigInteger(java.lang.Class cls)

chooseWiderNumberType

private static java.lang.Class chooseWiderNumberType(java.lang.String lefts,
                                                     java.lang.String rights)

toString

public java.lang.String toString()

visit

public void visit(GroovyCodeVisitor visitor)
Overrides:
visit in class ASTNode

transformExpression

public Expression transformExpression(ExpressionTransformer transformer)
Description copied from class: Expression
Return a copy of the expression calling the transformer on any nested expressions

Specified by:
transformExpression in class Expression
Parameters:
transformer -
Returns:

getLeftExpression

public Expression getLeftExpression()

setLeftExpression

public void setLeftExpression(Expression leftExpression)

setRightExpression

public void setRightExpression(Expression rightExpression)

getOperation

public Token getOperation()

getRightExpression

public Expression getRightExpression()

getText

public java.lang.String getText()
Overrides:
getText in class ASTNode

newAssignmentExpression

public static BinaryExpression newAssignmentExpression(java.lang.String variable,
                                                       Expression rhs)
Creates an assignment expression in which the specified expression is written into the specified variable name.


newInitializationExpression

public static BinaryExpression newInitializationExpression(java.lang.String variable,
                                                           Type type,
                                                           Expression rhs)
Creates variable initialization expression in which the specified expression is written into the specified variable name.


resolveType

protected void resolveType(AsmClassGenerator resolver)
Specified by:
resolveType in class Expression


Copyright © 2003-2005 The Codehaus. All Rights Reserved.