org.apache.cayenne

## Interface ValueHolder<E>

- All Superinterfaces:
    Serializable
  All Known Implementing Classes:
    IndexPropertyList, PersistentObjectHolder, PersistentObjectList, PersistentObjectMap, PersistentObjectSet, ToManyList, ToManySet

      public interface ValueHolder<E>
      extends Serializable

  Provides a level of indirection for property value access, most often used for deferred faulting of to-one relationships. A ValueHolder abstracts how a property value is obtained (fetched from DB, etc.), thus simplifying design of an object that uses it.

  Here is an example of a bean property implemented using ValueHolder:

       protected ValueHolder someProperty;

       public SomeClass getSomeProperty() {
           return (SomeClass) somePropertyHolder.getValue(SomeClass.class);
       }

       public void setSomeProperty(SomeClass newValue) {
           somePropertyHolder.setValue(SomeClass.class, newValue);
       }

  Since:
    1.2

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `E` | `getValue()` Returns an object stored by this ValueHolder.
    `E` | `getValueDirectly()` Retrieves ValueHolder value without triggering fault resolution.
    `void` | `invalidate()` Turns a ValueHolder into a fault.
    `boolean` | `isFault()` Returns true if the internal value is not yet resolved.
    `E` | `setValue(E value)` Sets an object stored by this ValueHolder.
    `E` | `setValueDirectly(E value)` Sets ValueHolder vaue without triggering fault resolution.

- - ### Method Detail

    - #### getValue

          E getValue()
              throws CayenneRuntimeException

      Returns an object stored by this ValueHolder.
      Throws:
        `CayenneRuntimeException`

    - #### getValueDirectly

          E getValueDirectly()
                      throws CayenneRuntimeException

      Retrieves ValueHolder value without triggering fault resolution.
      Throws:
        `CayenneRuntimeException`

    - #### setValue

          E setValue(E value)
              throws CayenneRuntimeException

      Sets an object stored by this ValueHolder.
      Parameters:
        `value` - a new value of the ValueHolder.
      Returns:
        a previous value saved in the ValueHolder.
      Throws:
        `CayenneRuntimeException`

    - #### setValueDirectly

          E setValueDirectly(E value)
                      throws CayenneRuntimeException

      Sets ValueHolder vaue without triggering fault resolution.
      Throws:
        `CayenneRuntimeException`

    - #### isFault

          boolean isFault()

      Returns true if the internal value is not yet resolved.

    - #### invalidate

          void invalidate()

      Turns a ValueHolder into a fault.

Copyright © 2001–2021 Apache Cayenne. All rights reserved.