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 classInfix operators (typesafe enumeration). -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ChildListPropertyDescriptorThe "extendedOperands" structural property of this node type (element type:Expression).static final ChildPropertyDescriptorThe "leftOperand" structural property of this node type (child type:Expression).static final SimplePropertyDescriptorThe "operator" structural property of this node type (type:InfixExpression.Operator).static final ChildPropertyDescriptorThe "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.booleanReturns where there are any extended operands.static ListpropertyDescriptors(int apiLevel) Returns a list of structural property descriptors for this node type.voidsetLeftOperand(Expression expression) Sets the left operand of this infix expression.voidsetOperator(InfixExpression.Operator operator) Sets the operator of this infix expression.voidsetRightOperand(Expression expression) Sets the right operand of this infix expression.Methods inherited from class org.eclipse.jdt.core.dom.Expression
resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxingMethods 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:
trueif there are one or more extended operands, andfalseif 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)
-