java.lang.Object
org.eclipse.persistence.indirection.ValueHolder<T>
All Implemented Interfaces:
Serializable, Cloneable, ValueHolderInterface<T>, WeavedAttributeValueHolderInterface<T>

public class ValueHolder<T> extends Object implements WeavedAttributeValueHolderInterface<T>, Cloneable, Serializable

Purpose: Act as a place holder for a variable that required a value holder interface. This class should be used to initialze an objects attributes that are using indirection is their mappings.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected T
    Stores the wrapped object.

    Fields inherited from interface org.eclipse.persistence.indirection.ValueHolderInterface

    shouldToStringInstantiate
  • Constructor Summary

    Constructors
    Constructor
    Description
    PUBLIC: Initialize the holder.
    ValueHolder(T value)
    PUBLIC: Initialize the holder with an object.
  • Method Summary

    Modifier and Type
    Method
    Description
    INTERNAL:
    PUBLIC: Return the wrapped object.
    boolean
    Used as part of the implementation of WeavedAttributeValueHolderInterface Used to track whether a valueholder that has been weaved into a class is coordinated with the underlying property
    boolean
    PUBLIC: Return a boolean indicating whether the wrapped object has been set or not.
    boolean
    Used as part of the implementation of WeavedAttributeValueHolderInterface Used to determine if this ValueHolder was added instantiated as part of the constructor of a weaved class
    void
    setIsCoordinatedWithProperty(boolean coordinated)
    Used as part of the implementation of WeavedAttributeValueHolderInterface Used to track whether a valueholder that has been weaved into a class is coordinated with the underlying property This method will be called internall when the state of Coordination between the weaved valueholder and the underlying value is known
    void
    Used as part of the implementation of WeavedAttributeValueHolderInterface Used to determine if this ValueHolder was added instantiated as part of the constructor of a weaved class This method will be called when a ValueHolder is instantiated in a weaved class
    void
    setValue(T value)
    PUBLIC: Set the wrapped object.
    boolean
    INTERNAL: Return if add/remove should trigger instantiation or avoid.
    INTERNAL:

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • value

      protected T value
      Stores the wrapped object.
  • Constructor Details

    • ValueHolder

      public ValueHolder()
      PUBLIC: Initialize the holder.
    • ValueHolder

      public ValueHolder(T value)
      PUBLIC: Initialize the holder with an object.
  • Method Details

    • clone

      public Object clone()
      INTERNAL:
      Specified by:
      clone in interface ValueHolderInterface<T>
      Overrides:
      clone in class Object
    • getValue

      public T getValue()
      PUBLIC: Return the wrapped object.
      Specified by:
      getValue in interface ValueHolderInterface<T>
    • isCoordinatedWithProperty

      public boolean isCoordinatedWithProperty()
      Used as part of the implementation of WeavedAttributeValueHolderInterface Used to track whether a valueholder that has been weaved into a class is coordinated with the underlying property
      Specified by:
      isCoordinatedWithProperty in interface WeavedAttributeValueHolderInterface<T>
    • isNewlyWeavedValueHolder

      public boolean isNewlyWeavedValueHolder()
      Used as part of the implementation of WeavedAttributeValueHolderInterface Used to determine if this ValueHolder was added instantiated as part of the constructor of a weaved class
      Specified by:
      isNewlyWeavedValueHolder in interface WeavedAttributeValueHolderInterface<T>
    • isInstantiated

      public boolean isInstantiated()
      PUBLIC: Return a boolean indicating whether the wrapped object has been set or not.
      Specified by:
      isInstantiated in interface ValueHolderInterface<T>
    • setIsCoordinatedWithProperty

      public void setIsCoordinatedWithProperty(boolean coordinated)
      Used as part of the implementation of WeavedAttributeValueHolderInterface Used to track whether a valueholder that has been weaved into a class is coordinated with the underlying property This method will be called internall when the state of Coordination between the weaved valueholder and the underlying value is known
      Specified by:
      setIsCoordinatedWithProperty in interface WeavedAttributeValueHolderInterface<T>
    • setIsNewlyWeavedValueHolder

      public void setIsNewlyWeavedValueHolder(boolean isNew)
      Used as part of the implementation of WeavedAttributeValueHolderInterface Used to determine if this ValueHolder was added instantiated as part of the constructor of a weaved class This method will be called when a ValueHolder is instantiated in a weaved class
      Specified by:
      setIsNewlyWeavedValueHolder in interface WeavedAttributeValueHolderInterface<T>
    • setValue

      public void setValue(T value)
      PUBLIC: Set the wrapped object.
      Specified by:
      setValue in interface ValueHolderInterface<T>
    • shouldAllowInstantiationDeferral

      public boolean shouldAllowInstantiationDeferral()
      INTERNAL: Return if add/remove should trigger instantiation or avoid. Current instantiation is avoided is using change tracking.
      Specified by:
      shouldAllowInstantiationDeferral in interface WeavedAttributeValueHolderInterface<T>
    • toString

      public String toString()
      INTERNAL:
      Overrides:
      toString in class Object