Class ObjectBasedValueSource

  • All Implemented Interfaces:
    FixedValueSource

    public class ObjectBasedValueSource
    extends java.lang.Object
    implements FixedValueSource
    Wraps an object, providing reflective access to the object graph of which the supplied object is the root. Expressions like 'child.name' will translate into 'rootObject.getChild().getName()' for non-boolean properties, and 'rootObject.getChild().isName()' for boolean properties.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.Object root  
    • Constructor Summary

      Constructors 
      Constructor Description
      ObjectBasedValueSource​(java.lang.Object root)
      Construct a new value source, using the supplied object as the root from which to start, and using expressions split at the dot ('.') to navigate the object graph beneath this root.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object getValue​(java.lang.String expression, InterpolationState interpolationState)
      Split the expression into parts, tokenized on the dot ('.') character.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • root

        private final java.lang.Object root
    • Constructor Detail

      • ObjectBasedValueSource

        public ObjectBasedValueSource​(java.lang.Object root)
        Construct a new value source, using the supplied object as the root from which to start, and using expressions split at the dot ('.') to navigate the object graph beneath this root.
        Parameters:
        root - The root of the graph.
    • Method Detail

      • getValue

        public java.lang.Object getValue​(java.lang.String expression,
                                         InterpolationState interpolationState)
        Split the expression into parts, tokenized on the dot ('.') character. Then, starting at the root object contained in this value source, apply each part to the object graph below this root, using either 'getXXX()' or 'isXXX()' accessor types to resolve the value for each successive expression part. Finally, return the result of the last expression part's resolution.

        NOTE: The object-graph nagivation actually takes place via the ReflectionValueExtractor class.

        Specified by:
        getValue in interface FixedValueSource
        Parameters:
        expression - The expression.
        interpolationState - InterpolationState.
        Returns:
        the value related to the expression, or null if not found (not available from this source)