| Modifier and Type | Class and Description |
|---|---|
| private static class |
| Modifier and Type | Field and Description |
|---|---|
| private volatile PropertyAccessor | |
| private volatile PropertyAccessor | |
| private final String | |
| private final boolean | |
| private String |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public void | generateCode(MethodVisitor
the ASM MethodVisitor into which code should be generated mv, CodeFlow a context object with info about what is on the stack cf)Overrides org. Generate the bytecode for this node into the supplied visitor. |
| public String | |
| private List | Returns: a list of resolvers that should be tried in order to access the propertythe object upon which property access is being attempted contextObject, List<PropertyAccessor> propertyAccessors)Determines the set of property resolvers that should be used to try and access a property on the specified target type. |
| public TypedValue | getValueInternal(ExpressionState state)
Implements abstract org.
|
| private TypedValue | getValueInternal(TypedValue contextObject, EvaluationContext evalContext, boolean isAutoGrowNullReferences)
|
| public ValueRef | |
| public boolean | isCompilable()
Overrides org. Check whether a node can be compiled to bytecode. |
| public boolean | |
| public boolean | isWritable(ExpressionState
the current expression state (includes the context) state)Overrides org. Implements org. Determine if this expression node will support a setValue() call. |
| public boolean | |
| private TypedValue | Returns: the value of the propertyAttempt to read the named property from the current context object. |
| pack-priv void | |
| public TypedValue | setValueInternal(ExpressionState
the current expression state (includes the context) state, Supplier<TypedValue> a supplier of the new value valueSupplier)Overrides org. Evaluate the expression to a node and then set the new value created by the
specified |
| public String | toStringAST()
Implements org. Return the string form of this AST node. |
| private void | writeProperty(TypedValue contextObject, EvaluationContext evalContext, String name, Object newValue)
|
| cachedReadAccessor | back to summary |
|---|---|
| private volatile PropertyAccessor cachedReadAccessor
| |
| cachedWriteAccessor | back to summary |
|---|---|
| private volatile PropertyAccessor cachedWriteAccessor
| |
| name | back to summary |
|---|---|
| private final String name | |
| nullSafe | back to summary |
|---|---|
| private final boolean nullSafe | |
| originalPrimitiveExitTypeDescriptor | back to summary |
|---|---|
| private String originalPrimitiveExitTypeDescriptor
| |
| PropertyOrFieldReference | back to summary |
|---|---|
| public PropertyOrFieldReference(boolean nullSafe, String propertyOrFieldName, int startPos, int endPos) | |
| generateCode | back to summary |
|---|---|
| public void generateCode(MethodVisitor mv, CodeFlow cf) Overrides org. Doc from org. Generate the bytecode for this node into the supplied visitor. Context info about the current expression being compiled is available in the codeflow object, e.g. including information about the type of the object currently on the stack.
| |
| getName | back to summary |
|---|---|
| public String getName() Get the name of the referenced property or field. | |
| getPropertyAccessorsToTry | back to summary |
|---|---|
| private List Determines the set of property resolvers that should be used to try and access a property on the specified target type. The resolvers are considered to be in an ordered list, however in the returned list any that are exact matches for the input target type (as opposed to 'general' resolvers that could work for any type) are placed at the start of the list. In addition, there are specific resolvers that exactly name the class in question and resolvers that name a specific class but it is a supertype of the class we have. These are put at the end of the specific resolvers set and will be tried after exactly matching accessors but before generic accessors.
| |
| getValueInternal | back to summary |
|---|---|
| public TypedValue getValueInternal(ExpressionState state) throws EvaluationException Implements abstract org.
| |
| getValueInternal | back to summary |
|---|---|
| private TypedValue getValueInternal(TypedValue contextObject, EvaluationContext evalContext, boolean isAutoGrowNullReferences) throws EvaluationException | |
| getValueRef | back to summary |
|---|---|
| public ValueRef getValueRef(ExpressionState state) throws EvaluationException Overrides org.
| |
| isCompilable | back to summary |
|---|---|
| public boolean isCompilable() Overrides org. Doc from org. Check whether a node can be compiled to bytecode. The reasoning in each node may be different but will typically involve checking whether the exit type descriptor of the node is known and any relevant child nodes are compilable.
| |
| isNullSafe | back to summary |
|---|---|
| public boolean isNullSafe() Does this node represent a null-safe property or field reference? | |
| isWritable | back to summary |
|---|---|
| public boolean isWritable(ExpressionState state) throws EvaluationException Overrides org. Implements org. Doc from org. Determine if this expression node will support a setValue() call.
| |
| isWritableProperty | back to summary |
|---|---|
| public boolean isWritableProperty(String name, TypedValue contextObject, EvaluationContext evalContext) throws EvaluationException | |
| readProperty | back to summary |
|---|---|
| private TypedValue readProperty(TypedValue contextObject, EvaluationContext evalContext, String name) throws EvaluationException Attempt to read the named property from the current context object.
| |
| setExitTypeDescriptor | back to summary |
|---|---|
| pack-priv void setExitTypeDescriptor(String descriptor) | |
| setValueInternal | back to summary |
|---|---|
| public TypedValue setValueInternal(ExpressionState state, Supplier<TypedValue> valueSupplier) throws EvaluationException Overrides org. Doc from org. Evaluate the expression to a node and then set the new value created by the
specified For example, if the expression evaluates to a property reference, then the property will be set to the new value. Favor this method over By default, this method throws a
| |
| toStringAST | back to summary |
|---|---|
| public String toStringAST() Implements org. Doc from org. Return the string form of this AST node. | |
| writeProperty | back to summary |
|---|---|
| private void writeProperty(TypedValue contextObject, EvaluationContext evalContext, String name, Object newValue) throws EvaluationException | |
| Modifier and Type | Field and Description |
|---|---|
| private final boolean | |
| private final TypedValue | |
| private final EvaluationContext | |
| private final PropertyOrFieldReference |
| Access | Constructor and Description |
|---|---|
| public | AccessorValueRef(PropertyOrFieldReference propertyOrFieldReference, TypedValue activeContextObject, EvaluationContext evalContext, boolean autoGrowNullReferences)
|
| Modifier and Type | Method and Description |
|---|---|
| public TypedValue | getValue()
Implements org. Returns the value this ValueRef points to, it should not require expression component re-evaluation. |
| public boolean | isWritable()
Implements org. Indicates whether calling setValue(Object) is supported. |
| public void | setValue(Object
the new value newValue)Implements org. Sets the value this ValueRef points to, it should not require expression component re-evaluation. |
| autoGrowNullReferences | back to summary |
|---|---|
| private final boolean autoGrowNullReferences | |
| contextObject | back to summary |
|---|---|
| private final TypedValue contextObject | |
| evalContext | back to summary |
|---|---|
| private final EvaluationContext evalContext | |
| ref | back to summary |
|---|---|
| private final PropertyOrFieldReference ref | |
| AccessorValueRef | back to summary |
|---|---|
| public AccessorValueRef(PropertyOrFieldReference propertyOrFieldReference, TypedValue activeContextObject, EvaluationContext evalContext, boolean autoGrowNullReferences) | |
| getValue | back to summary |
|---|---|
| public TypedValue getValue() Implements org. Doc from org. Returns the value this ValueRef points to, it should not require expression component re-evaluation.
| |
| isWritable | back to summary |
|---|---|
| public boolean isWritable() Implements org. Doc from org. Indicates whether calling setValue(Object) is supported.
| |
| setValue | back to summary |
|---|---|
| public void setValue(Object newValue) Implements org. Doc from org. Sets the value this ValueRef points to, it should not require expression component re-evaluation. | |