Eclipse JDT
2.0

org.eclipse.jdt.core.dom
Class InfixExpression

java.lang.Object
  |
  +--org.eclipse.jdt.core.dom.ASTNode
        |
        +--org.eclipse.jdt.core.dom.Expression
              |
              +--org.eclipse.jdt.core.dom.InfixExpression

public class InfixExpression
extends Expression

Infix expression AST node type. Range 0: first character of left operand expression through last character of the last extended operand expression. If there are no extended operands, the range ends after the right operand expression.

 InfixExpression:
    Expression InfixOperator Expression { InfixOperator Expression } 
 

Since:
2.0

Nested Class Summary
static class InfixExpression.Operator
          Infix operators (typesafe enumeration).
 
Field Summary
 
Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BOOLEAN_LITERAL, BREAK_STATEMENT, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_STATEMENT, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVADOC, LABELED_STATEMENT, MALFORMED, METHOD_DECLARATION, METHOD_INVOCATION, NULL_LITERAL, NUMBER_LITERAL, PACKAGE_DECLARATION, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, QUALIFIED_NAME, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT
 
Method Summary
 List extendedOperands()
          Returns the live list of extended operands.
 Expression getLeftOperand()
          Returns the left operand of this infix expression.
 int getNodeType()
          Returns an integer value identifying the type of this concrete AST node.
 InfixExpression.Operator getOperator()
          Returns the operator of this infix expression.
 Expression getRightOperand()
          Returns the right operand of this infix expression.
 boolean hasExtendedOperands()
          Returns where there are any extended operands.
 void setLeftOperand(Expression expression)
          Sets the left operand of this infix expression.
 void setOperator(InfixExpression.Operator operator)
          Sets the operator of this infix expression.
 void setRightOperand(Expression expression)
          Sets the right operand of this infix expression.
 boolean subtreeMatch(ASTMatcher matcher, Object other)
          Returns whether the subtree rooted at the given node matches the given other object as decided by the given matcher.
 
Methods inherited from class org.eclipse.jdt.core.dom.Expression
resolveTypeBinding
 
Methods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, equals, getAST, getFlags, getLength, getParent, getProperty, getRoot, getStartPosition, properties, setFlags, setProperty, setSourceRange, subtreeBytes, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getNodeType

public int getNodeType()
Description copied from class: ASTNode
Returns an integer value identifying the type of this concrete AST node. The values are small positive integers, suitable for use in switch statements.

For each concrete node type there is a unique node type constant (name and value). The unique node type constant for a concrete node type such as CastExpression is ASTNode.CAST_EXPRESSION.

Specified by:
getNodeType in class ASTNode
Returns:
one of the node type constants

subtreeMatch

public boolean subtreeMatch(ASTMatcher matcher,
                            Object other)
Description copied from class: ASTNode
Returns whether the subtree rooted at the given node matches the given other object as decided by the given matcher.

Specified by:
subtreeMatch in class ASTNode
Parameters:
matcher - the matcher
other - the other object, or null
Returns:
true if the subtree matches, or false if they do not match

getOperator

public InfixExpression.Operator getOperator()
Returns the operator of this infix expression.

Returns:
the infix operator

setOperator

public void setOperator(InfixExpression.Operator operator)
Sets the operator of this infix expression.

Parameters:
operator - the infix operator
Throws:
IllegalArgumentException - if the argument is incorrect

getLeftOperand

public Expression getLeftOperand()
Returns the left operand of this infix expression.

Returns:
the left operand node

setLeftOperand

public void setLeftOperand(Expression expression)
Sets the left operand of this infix expression.

Parameters:
expression - the left operand node
Throws:
IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created

getRightOperand

public Expression getRightOperand()
Returns the right operand of this infix expression.

Returns:
the right operand node

setRightOperand

public void setRightOperand(Expression expression)
Sets the right operand of this infix expression.

Parameters:
expression - the right operand node
Throws:
IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created

hasExtendedOperands

public boolean hasExtendedOperands()
Returns where there are any extended operands.

Returns:
true if there are one or more extended operands, and false if there are no extended operands

extendedOperands

public List extendedOperands()
Returns the live list of extended operands.

The extended operands is the preferred way of representing deeply nested expressions of the form L op R op R2 op R3... where the same operator appears between all the operands (the most common case being lengthy string concatenation expressions). Using the extended operands keeps the trees from getting too deep; this decreases the risk is running out of thread stack space at runtime when traversing such trees. ((a + b) + c) + d would be translated to: leftOperand: a rightOperand: b extendedOperands: {c, d} operator: +

Returns:
the live list of extended operands (element type: Expression)

Eclipse JDT
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.