org.springframework.expression.spel.ast

## Class PropertyOrFieldReference

- java.lang.Object
- - org.springframework.expression.spel.ast.SpelNodeImpl
  - - org.springframework.expression.spel.ast.PropertyOrFieldReference

All Implemented Interfaces:
  SpelNode

    public class PropertyOrFieldReference
    extends SpelNodeImpl

Represents a simple property or field reference.

Since:
  3.0
Author:
  Andy Clement, Juergen Hoeller, Clark Duplichien

### Field Summary

### Fields inherited from class org.springframework.expression.spel.ast.SpelNodeImpl

`children, pos`

### Constructor Summary

Constructors
Constructor and Description
`PropertyOrFieldReference(boolean nullSafe, String propertyOrFieldName, int pos)`

### Method Summary

Methods
`String` `getName()`
`TypedValue` `getValueInternal(ExpressionState state)`
`ValueRef` `getValueRef(ExpressionState state)`
`boolean` `isNullSafe()`
`boolean` `isWritable(ExpressionState state)` Determine if this expression node will support a setValue() call.
`boolean` `isWritableProperty(String name, TypedValue contextObject, EvaluationContext eContext)`
`void` `setValue(ExpressionState state, Object newValue)` Evaluate the expression to a node and then set the new value on that node.
`String` `toStringAST()`

### Methods inherited from class org.springframework.expression.spel.ast.SpelNodeImpl

`getChild, getChildCount, getEndPosition, getObjectClass, getPreviousChild, getStartPosition, getTypedValue, getValue, getValue, nextChildIs`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PropertyOrFieldReference

    public PropertyOrFieldReference(boolean nullSafe,
                            String propertyOrFieldName,
                            int pos)

### Method Detail

#### isNullSafe

    public boolean isNullSafe()

#### getName

    public String getName()

#### getValueRef

    public ValueRef getValueRef(ExpressionState state)
                         throws EvaluationException

Overrides:
  `getValueRef` in class `SpelNodeImpl`
Throws:
  `EvaluationException`

#### getValueInternal

    public TypedValue getValueInternal(ExpressionState state)
                                throws EvaluationException

Specified by:
  `getValueInternal` in class `SpelNodeImpl`
Throws:
  `EvaluationException`

#### setValue

    public void setValue(ExpressionState state,
                Object newValue)
                  throws SpelEvaluationException

Description copied from interface: `SpelNode`
Evaluate the expression to a node and then set the new value on that node. For example, if the expression evaluates to a property reference then the property will be set to the new value.

Specified by:
  `setValue` in interface `SpelNode`
Overrides:
  `setValue` in class `SpelNodeImpl`
Parameters:
  `state` - the current expression state (includes the context)
  `newValue` - the new value
Throws:
  `SpelEvaluationException`

#### isWritable

    public boolean isWritable(ExpressionState state)
                       throws SpelEvaluationException

Description copied from interface: `SpelNode`
Determine if this expression node will support a setValue() call.

Specified by:
  `isWritable` in interface `SpelNode`
Overrides:
  `isWritable` in class `SpelNodeImpl`
Parameters:
  `state` - the current expression state (includes the context)
Returns:
  true if the expression node will allow setValue()
Throws:
  `SpelEvaluationException`

#### toStringAST

    public String toStringAST()

Specified by:
  `toStringAST` in interface `SpelNode`
Specified by:
  `toStringAST` in class `SpelNodeImpl`
Returns:
  the string form of this AST node

#### isWritableProperty

    public boolean isWritableProperty(String name,
                             TypedValue contextObject,
                             EvaluationContext eContext)
                               throws SpelEvaluationException

Throws:
  `SpelEvaluationException`