ValueHolderInterface
| Modifier and Type | Field and Description |
|---|---|
| protected boolean | isCoordinatedWithProperty
The variable below is used as part of the implementation of WeavedAttributeValueHolderInterface It is used to track whether a valueholder that has been weaved into a class is coordinated with the underlying property Set internally in EclipseLink when the state of coordination between a weaved valueholder and the underlying property is known |
| protected volatile boolean | isInstantiated
Indicates whether the object has been read from the database or not. |
| protected AbstractRecord | row
Stores the row representation of the object. |
| protected transient AbstractSession | session
Stores the session for the database that contains the object. |
| protected volatile T | value
Stores the object after it is read from the database. |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public Object | clone()
Overrides java. Implements org. |
| public AbstractRecord | |
| public AbstractSession | |
| public T | getValue()
Implements org. |
| public T | getValue(UnitOfWorkImpl uow)
Process against the UOW and attempt to load a local copy before going to the shared cache If null is returned then the calling UOW will instantiate as normal. |
| public ValueHolderInterface | |
| protected abstract T | |
| public abstract T | instantiateForUnitOfWorkValueHolder(UnitOfWorkValueHolder<T> unitOfWorkValueHolder)
Triggers UnitOfWork valueholders directly without triggering the wrapped valueholder (this). |
| public boolean | isCoordinatedWithProperty()
Implements org. |
| public boolean | Returns: true if getValue() won't trigger a database read.INTERNAL: Answers if this valueholder is easy to instantiate. |
| public boolean | isInstantiated()
Implements org. |
| public boolean | isNewlyWeavedValueHolder()
Implements org. |
| public abstract boolean | |
| public boolean | isSerializedRemoteUnitOfWorkValueHolder()
Used to determine if this is a remote uow value holder that was serialized to the server. |
| protected boolean | isTransactionalValueHolder()
Answers if this valueholder is referenced only by a UnitOfWork valueholder. |
| public void | |
| public void | |
| public void | releaseWrappedValueHolder(AbstractSession targetSession)
Releases a wrapped valueholder privately owned by a particular unit of work. |
| protected void | |
| public void | |
| public void | setIsCoordinatedWithProperty(boolean coordinated)
Implements org. |
| public void | setIsNewlyWeavedValueHolder(boolean isNew)
Implements org. |
| public void | |
| public void | |
| public void | |
| public void | setValue(T value)
Implements org. |
| public boolean | shouldAllowInstantiationDeferral()
Implements org. |
| public String |
| isCoordinatedWithProperty | back to summary |
|---|---|
| protected boolean isCoordinatedWithProperty The variable below is used as part of the implementation of WeavedAttributeValueHolderInterface It is used to track whether a valueholder that has been weaved into a class is coordinated with the underlying property Set internally in EclipseLink when the state of coordination between a weaved valueholder and the underlying property is known | |
| isInstantiated | back to summary |
|---|---|
| protected volatile boolean isInstantiated Indicates whether the object has been read from the database or not. | |
| row | back to summary |
|---|---|
| protected AbstractRecord row Stores the row representation of the object. | |
| session | back to summary |
|---|---|
| protected transient AbstractSession session Stores the session for the database that contains the object. | |
| value | back to summary |
|---|---|
| protected volatile T value Stores the object after it is read from the database. | |
| DatabaseValueHolder | back to summary |
|---|---|
| protected DatabaseValueHolder() Default constructor. | |
| clone | back to summary |
|---|---|
| public Object clone() Overrides java. Implements org. Doc from org. PUBLIC: Copy the value holder (but not its' reference, shallow).
| |
| getRow | back to summary |
|---|---|
| public AbstractRecord getRow() Return the row. | |
| getSession | back to summary |
|---|---|
| public AbstractSession getSession() Return the session. | |
| getValue | back to summary |
|---|---|
| public T getValue() Implements org. Return the object.
| |
| getValue | back to summary |
|---|---|
| public T getValue(UnitOfWorkImpl uow) Process against the UOW and attempt to load a local copy before going to the shared cache If null is returned then the calling UOW will instantiate as normal. | |
| getWrappedValueHolder | back to summary |
|---|---|
| public ValueHolderInterface | |
| instantiate | back to summary |
|---|---|
| protected abstract T instantiate() throws DatabaseException Instantiate the object. | |
| instantiateForUnitOfWorkValueHolder | back to summary |
|---|---|
| public abstract T instantiateForUnitOfWorkValueHolder(UnitOfWorkValueHolder<T> unitOfWorkValueHolder) Triggers UnitOfWork valueholders directly without triggering the wrapped valueholder (this). When in transaction and/or for pessimistic locking the UnitOfWorkValueHolder needs to be triggered directly without triggering the wrapped valueholder. However only the wrapped valueholder knows how to trigger the indirection, i.e. it may be a batchValueHolder, and it stores all the info like the row and the query. Note Implementations of this method are not necessarily thread-safe. They must be used in a synchronized manner | |
| isCoordinatedWithProperty | back to summary |
|---|---|
| public boolean isCoordinatedWithProperty() Implements org. This method is used as part of the implementation of WeavedAttributeValueHolderInterface It is used to check whether a valueholder that has been weaved into a class is coordinated with the underlying property
| |
| isEasilyInstantiated | back to summary |
|---|---|
| public boolean isEasilyInstantiated() INTERNAL: Answers if this valueholder is easy to instantiate.
| |
| isInstantiated | back to summary |
|---|---|
| public boolean isInstantiated() Implements org. Return a boolean indicating whether the object has been read from the database or not.
| |
| isNewlyWeavedValueHolder | back to summary |
|---|---|
| public boolean isNewlyWeavedValueHolder() Implements org. This method is used as part of the implementation of WeavedAttributeValueHolderInterface. A DatabaseValueHolder is set up by TopLink and will never be a newly weaved valueholder. As a result, this method is stubbed out.
| |
| isPessimisticLockingValueHolder | back to summary |
|---|---|
| public abstract boolean isPessimisticLockingValueHolder() Answers if this valueholder is a pessimistic locking one. Such valueholders are special in that they can be triggered multiple times by different UnitsOfWork. Each time a lock query will be issued. Hence even if instantiated it may have to be instantiated again, and once instantiated all fields can not be reset. Note Implementations of this method are not necessarily thread-safe. They must be used in a synchronizaed manner | |
| isSerializedRemoteUnitOfWorkValueHolder | back to summary |
|---|---|
| public boolean isSerializedRemoteUnitOfWorkValueHolder() Used to determine if this is a remote uow value holder that was serialized to the server. It has no reference to its wrapper value holder, so must find its original object to be able to instantiate. | |
| isTransactionalValueHolder | back to summary |
|---|---|
| protected boolean isTransactionalValueHolder() Answers if this valueholder is referenced only by a UnitOfWork valueholder. I.e. it was built in valueFromRow which was called by buildCloneFromRow. Sometimes in transaction a UnitOfWork clone, and all valueholders, are built directly from the row; however a UnitOfWorkValueHolder does not know how to instantiate itself so wraps this which does. On a successful merge must be released to the session cache with releaseWrappedValueHolder. | |
| postInstantiate | back to summary |
|---|---|
| public void postInstantiate() INTERNAL: Run any extra code required after the valueholder instantiates
| |
| privilegedSetValue | back to summary |
|---|---|
| public void privilegedSetValue(T value) Set the object. This is used only by the privileged methods. One must be very careful in using this method. | |
| releaseWrappedValueHolder | back to summary |
|---|---|
| public void releaseWrappedValueHolder(AbstractSession targetSession) Releases a wrapped valueholder privately owned by a particular unit of work. When unit of work clones are built directly from rows no object in the shared cache points to this valueholder, so it can store the unit of work as its session. However once that UnitOfWork commits and the valueholder is merged into the shared cache, the session needs to be reset to the root session, ie. the server session. | |
| resetFields | back to summary |
|---|---|
| protected void resetFields() Reset all the fields that are not needed after instantiation. | |
| setInstantiated | back to summary |
|---|---|
| public void setInstantiated() Set the instantiated flag to true. | |
| setIsCoordinatedWithProperty | back to summary |
|---|---|
| public void setIsCoordinatedWithProperty(boolean coordinated) Implements org. This method is used as part of the implementation of WeavedAttributeValueHolderInterface It is used internally by EclipseLink to set whether a valueholder that has been weaved into a class is coordinated with the underlying property
| |
| setIsNewlyWeavedValueHolder | back to summary |
|---|---|
| public void setIsNewlyWeavedValueHolder(boolean isNew) Implements org. This method is used as part of the implementation of WeavedAttributeValueHolderInterface A DatabaseValueHolder is set up by EclipseLink and will never be a newly weaved valueholder As a result, this method is stubbed out.
| |
| setRow | back to summary |
|---|---|
| public void setRow(AbstractRecord row) Set the row. | |
| setSession | back to summary |
|---|---|
| public void setSession(AbstractSession session) Set the session. | |
| setUninstantiated | back to summary |
|---|---|
| public void setUninstantiated() Set the instantiated flag to false. | |
| setValue | back to summary |
|---|---|
| public void setValue(T value) Implements org. Set the object.
| |
| shouldAllowInstantiationDeferral | back to summary |
|---|---|
| public boolean shouldAllowInstantiationDeferral() Implements org. INTERNAL: Return if add/remove should trigger instantiation or avoid. Current instantiation is avoided is using change tracking.
| |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Doc from java. Returns a string representation of the object. | |