## 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

Field Summary

Fields inherited from class org.springframework.expression.spel.ast.SpelNodeImpl
`children, pos`

Constructor Summary
`PropertyOrFieldReference(boolean nullSafe, String propertyOrFieldName, int pos)`

Method Summary
`String` `getName()`
`TypedValue` `getValueInternal(ExpressionState state)`
`boolean` `isNullSafe()`
`boolean` `isWritable(ExpressionState state)` Determine if this expression node will support a setValue() call.
`boolean` `isWritableProperty(String name, ExpressionState state)`
`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()

### 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,
                                      ExpressionState state)
                               throws SpelEvaluationException

  Throws:
    `SpelEvaluationException`