Package 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.InfixExpression: Expression InfixOperator Expression { InfixOperator Expression }
- Since:
- 2.0
- Restriction:
- This class is not intended to be instantiated by clients.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
InfixExpression.Operator
Infix operators (typesafe enumeration).
-
Field Summary
Fields Modifier and Type Field Description static ChildListPropertyDescriptor
EXTENDED_OPERANDS_PROPERTY
The "extendedOperands" structural property of this node type (element type:Expression
).static ChildPropertyDescriptor
LEFT_OPERAND_PROPERTY
The "leftOperand" structural property of this node type (child type:Expression
).static SimplePropertyDescriptor
OPERATOR_PROPERTY
The "operator" structural property of this node type (type:InfixExpression.Operator
).static ChildPropertyDescriptor
RIGHT_OPERAND_PROPERTY
The "rightOperand" structural property of this node type (child type:Expression
).-
Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List
extendedOperands()
Returns the live list of extended operands.Expression
getLeftOperand()
Returns the left operand of this infix expression.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.static List
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.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.-
Methods inherited from class org.eclipse.jdt.core.dom.Expression
resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxing
-
Methods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
-
-
-
-
Field Detail
-
LEFT_OPERAND_PROPERTY
public static final ChildPropertyDescriptor LEFT_OPERAND_PROPERTY
The "leftOperand" structural property of this node type (child type:Expression
).- Since:
- 3.0
-
OPERATOR_PROPERTY
public static final SimplePropertyDescriptor OPERATOR_PROPERTY
The "operator" structural property of this node type (type:InfixExpression.Operator
).- Since:
- 3.0
-
RIGHT_OPERAND_PROPERTY
public static final ChildPropertyDescriptor RIGHT_OPERAND_PROPERTY
The "rightOperand" structural property of this node type (child type:Expression
).- Since:
- 3.0
-
EXTENDED_OPERANDS_PROPERTY
public static final ChildListPropertyDescriptor EXTENDED_OPERANDS_PROPERTY
The "extendedOperands" structural property of this node type (element type:Expression
).- Since:
- 3.0
-
-
Method Detail
-
propertyDescriptors
public static List propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type. Clients must not modify the result.- Parameters:
apiLevel
- the API level; one of theAST.JLS*
constants- Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor
) - Since:
- 3.0
-
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, andfalse
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
)
-
-