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
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 ClassesModifier and TypeClassDescriptionstatic class
Infix operators (typesafe enumeration). -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ChildListPropertyDescriptor
The "extendedOperands" structural property of this node type (element type:Expression
).static final ChildPropertyDescriptor
The "leftOperand" structural property of this node type (child type:Expression
).static final SimplePropertyDescriptor
The "operator" structural property of this node type (type:InfixExpression.Operator
).static final ChildPropertyDescriptor
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, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, 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, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, 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, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
Method Summary
Modifier and TypeMethodDescriptionReturns the live list of extended operands.Returns the left operand of this infix expression.Returns the operator of this infix expression.Returns the right operand of this infix expression.boolean
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 Details
-
LEFT_OPERAND_PROPERTY
The "leftOperand" structural property of this node type (child type:Expression
).- Since:
- 3.0
-
OPERATOR_PROPERTY
The "operator" structural property of this node type (type:InfixExpression.Operator
).- Since:
- 3.0
-
RIGHT_OPERAND_PROPERTY
The "rightOperand" structural property of this node type (child type:Expression
).- Since:
- 3.0
-
EXTENDED_OPERANDS_PROPERTY
The "extendedOperands" structural property of this node type (element type:Expression
).- Since:
- 3.0
-
-
Method Details
-
propertyDescriptors
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
Returns the operator of this infix expression.- Returns:
- the infix operator
-
setOperator
Sets the operator of this infix expression.- Parameters:
operator
- the infix operator- Throws:
IllegalArgumentException
- if the argument is incorrect
-
getLeftOperand
Returns the left operand of this infix expression.- Returns:
- the left operand node
-
setLeftOperand
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
Returns the right operand of this infix expression.- Returns:
- the right operand node
-
setRightOperand
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
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
)
-