Class AbstractValueHolder
java.lang.Object
org.eclipse.persistence.internal.indirection.DatabaseValueHolder
org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
io.jmix.eclipselink.impl.lazyloading.AbstractValueHolder
- All Implemented Interfaces:
Serializable,Cloneable,org.eclipse.persistence.indirection.ValueHolderInterface,org.eclipse.persistence.indirection.WeavedAttributeValueHolderInterface,org.eclipse.persistence.internal.indirection.WrappingValueHolder
- Direct Known Subclasses:
AbstractSingleValueHolder,CollectionValuePropertyHolder,ElementCollectionValueHolder,NonLoadingValueHolder
public abstract class AbstractValueHolder
extends org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
implements org.eclipse.persistence.indirection.ValueHolderInterface, org.eclipse.persistence.indirection.WeavedAttributeValueHolderInterface, org.eclipse.persistence.internal.indirection.WrappingValueHolder, Cloneable, Serializable
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.springframework.beans.factory.BeanFactoryFields inherited from class org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
backupValueHolder, mapping, relationshipSourceObject, remoteUnitOfWork, sourceAttributeName, sourceObject, wrappedValueHolder, wrappedValueHolderRemoteIDFields inherited from class org.eclipse.persistence.internal.indirection.DatabaseValueHolder
isCoordinatedWithProperty, row, sessionFields inherited from interface org.eclipse.persistence.indirection.ValueHolderInterface
shouldToStringInstantiate -
Constructor Summary
ConstructorsConstructorDescriptionAbstractValueHolder(org.springframework.beans.factory.BeanFactory beanFactory, org.eclipse.persistence.indirection.ValueHolderInterface originalValueHolder, Object owner, MetaProperty metaProperty) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidafterLoadValue(Object value) protected ObjectbuildBackupCloneFor(Object cloneAttributeValue) buildCloneFor(Object originalAttributeValue) protected UnconstrainedDataManagerprotected FetchPlansio.jmix.eclipselink.impl.lazyloading.LoadOptionsorg.eclipse.persistence.mappings.DatabaseMappingprotected Metadataprotected MetadataToolsgetOwner()org.eclipse.persistence.internal.sessions.AbstractRecordgetRow()org.eclipse.persistence.internal.sessions.AbstractSessiongetValue()getValue(org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow) org.eclipse.persistence.indirection.ValueHolderInterfaceinstantiateForUnitOfWorkValueHolder(org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder unitOfWorkValueHolder) booleanbooleanbooleanbooleanbooleanbooleanprotected abstract ObjectvoidvoidprivilegedSetValue(Object value) protected voidregisterLoadedProperty(Object entity, String property) voidreleaseWrappedValueHolder(org.eclipse.persistence.internal.sessions.AbstractSession targetSession) protected voidreplaceLoadOptions(Object entity, MetaProperty property) protected voidreplaceToExistingReferences(Object entity, MetaProperty property, Object owner) voidsetBackupValueHolder(org.eclipse.persistence.indirection.ValueHolderInterface backupValueHolder) voidvoidsetIsCoordinatedWithProperty(boolean coordinated) voidsetIsNewlyWeavedValueHolder(boolean isNew) voidsetLoadOptions(io.jmix.eclipselink.impl.lazyloading.LoadOptions loadOptions) voidsetRow(org.eclipse.persistence.internal.sessions.AbstractRecord row) voidsetSession(org.eclipse.persistence.internal.sessions.AbstractSession session) voidvoidbooleanprotected booleanAllows a reentrantgetValue()call, made while this holder is already loading, to delegate to the original EclipseLink holder instead of starting the same Jmix load again.Methods inherited from class org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
getBackupValueHolder, getRelationshipSourceObject, getRemoteUnitOfWork, getSourceAttributeName, getSourceObject, getUnitOfWork, getValueFromServerObject, instantiate, instantiateImpl, resetFields, setMapping, setRelationshipSourceObject, setRemoteUnitOfWork, setSourceAttributeName, setSourceObject, setWrappedValueHolder, throwUnfetchedAttributeExceptionMethods inherited from class org.eclipse.persistence.internal.indirection.DatabaseValueHolder
clone, isTransactionalValueHolder, toStringMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.persistence.indirection.ValueHolderInterface
clone
-
Field Details
-
beanFactory
protected transient org.springframework.beans.factory.BeanFactory beanFactory
-
-
Constructor Details
-
AbstractValueHolder
public AbstractValueHolder(org.springframework.beans.factory.BeanFactory beanFactory, org.eclipse.persistence.indirection.ValueHolderInterface originalValueHolder, Object owner, MetaProperty metaProperty)
-
-
Method Details
-
getWrappedValueHolder
public org.eclipse.persistence.indirection.ValueHolderInterface getWrappedValueHolder()- Specified by:
getWrappedValueHolderin interfaceorg.eclipse.persistence.internal.indirection.WrappingValueHolder- Overrides:
getWrappedValueHolderin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
isCoordinatedWithProperty
public boolean isCoordinatedWithProperty()- Specified by:
isCoordinatedWithPropertyin interfaceorg.eclipse.persistence.indirection.WeavedAttributeValueHolderInterface- Overrides:
isCoordinatedWithPropertyin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
setIsCoordinatedWithProperty
public void setIsCoordinatedWithProperty(boolean coordinated) - Specified by:
setIsCoordinatedWithPropertyin interfaceorg.eclipse.persistence.indirection.WeavedAttributeValueHolderInterface- Overrides:
setIsCoordinatedWithPropertyin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
isNewlyWeavedValueHolder
public boolean isNewlyWeavedValueHolder()- Specified by:
isNewlyWeavedValueHolderin interfaceorg.eclipse.persistence.indirection.WeavedAttributeValueHolderInterface- Overrides:
isNewlyWeavedValueHolderin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
setIsNewlyWeavedValueHolder
public void setIsNewlyWeavedValueHolder(boolean isNew) - Specified by:
setIsNewlyWeavedValueHolderin interfaceorg.eclipse.persistence.indirection.WeavedAttributeValueHolderInterface- Overrides:
setIsNewlyWeavedValueHolderin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
shouldAllowInstantiationDeferral
public boolean shouldAllowInstantiationDeferral()- Specified by:
shouldAllowInstantiationDeferralin interfaceorg.eclipse.persistence.indirection.WeavedAttributeValueHolderInterface- Overrides:
shouldAllowInstantiationDeferralin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
getMapping
public org.eclipse.persistence.mappings.DatabaseMapping getMapping()- Overrides:
getMappingin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
isEasilyInstantiated
public boolean isEasilyInstantiated()- Overrides:
isEasilyInstantiatedin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
isPessimisticLockingValueHolder
public boolean isPessimisticLockingValueHolder()- Overrides:
isPessimisticLockingValueHolderin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
getWrappedValueHolderRemoteID
- Overrides:
getWrappedValueHolderRemoteIDin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
isSerializedRemoteUnitOfWorkValueHolder
public boolean isSerializedRemoteUnitOfWorkValueHolder()- Overrides:
isSerializedRemoteUnitOfWorkValueHolderin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
instantiateForUnitOfWorkValueHolder
public Object instantiateForUnitOfWorkValueHolder(org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder unitOfWorkValueHolder) - Overrides:
instantiateForUnitOfWorkValueHolderin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
releaseWrappedValueHolder
public void releaseWrappedValueHolder(org.eclipse.persistence.internal.sessions.AbstractSession targetSession) - Overrides:
releaseWrappedValueHolderin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
setBackupValueHolder
public void setBackupValueHolder(org.eclipse.persistence.indirection.ValueHolderInterface backupValueHolder) - Overrides:
setBackupValueHolderin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
getRow
public org.eclipse.persistence.internal.sessions.AbstractRecord getRow()- Overrides:
getRowin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
getSession
public org.eclipse.persistence.internal.sessions.AbstractSession getSession()- Overrides:
getSessionin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
getValue
- Overrides:
getValuein classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
postInstantiate
public void postInstantiate()- Overrides:
postInstantiatein classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
privilegedSetValue
- Overrides:
privilegedSetValuein classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
setInstantiated
public void setInstantiated()- Overrides:
setInstantiatedin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
setRow
public void setRow(org.eclipse.persistence.internal.sessions.AbstractRecord row) - Overrides:
setRowin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
setSession
public void setSession(org.eclipse.persistence.internal.sessions.AbstractSession session) - Overrides:
setSessionin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
setUninstantiated
public void setUninstantiated()- Overrides:
setUninstantiatedin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
buildCloneFor
- Specified by:
buildCloneForin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
buildBackupCloneFor
- Specified by:
buildBackupCloneForin classorg.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder
-
isInstantiated
public boolean isInstantiated()- Specified by:
isInstantiatedin interfaceorg.eclipse.persistence.indirection.ValueHolderInterface- Overrides:
isInstantiatedin classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
getValue
- Specified by:
getValuein interfaceorg.eclipse.persistence.indirection.ValueHolderInterface- Overrides:
getValuein classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
shouldDelegateOnRecursiveLoad
protected boolean shouldDelegateOnRecursiveLoad()Allows a reentrantgetValue()call, made while this holder is already loading, to delegate to the original EclipseLink holder instead of starting the same Jmix load again.Keep this opt-in: it is needed for collection holders whose owner is managed. During the internal owner reload, EclipseLink may resolve the same owner instance from the persistence context and touch the same collection holder. For detached owners the reload uses another managed instance, so the original holder is not expected to re-enter.
- Returns:
- true only when delegating is needed to break same-holder recursion
-
loadValue
-
afterLoadValue
-
registerLoadedProperty
-
setValue
- Specified by:
setValuein interfaceorg.eclipse.persistence.indirection.ValueHolderInterface- Overrides:
setValuein classorg.eclipse.persistence.internal.indirection.DatabaseValueHolder
-
setLoadOptions
public void setLoadOptions(io.jmix.eclipselink.impl.lazyloading.LoadOptions loadOptions) -
getLoadOptions
public io.jmix.eclipselink.impl.lazyloading.LoadOptions getLoadOptions() -
getOwner
-
getPropertyInfo
-
replaceToExistingReferences
-
replaceLoadOptions
-
getMetadata
-
getMetadataTools
-
getDataManager
-
getFetchPlans
-