Class SpringDataEclipseStoreLazyBinaryHandler
java.lang.Object
org.eclipse.serializer.persistence.types.PersistenceTypeHandler.Abstract<org.eclipse.serializer.persistence.binary.types.Binary,T>
org.eclipse.serializer.persistence.binary.types.BinaryTypeHandler.Abstract<T>
org.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom<SpringDataEclipseStoreLazy.Default<?>>
software.xdev.spring.data.eclipse.store.repository.lazy.SpringDataEclipseStoreLazyBinaryHandler
- All Implemented Interfaces:
org.eclipse.serializer.persistence.binary.types.BinaryTypeHandler<SpringDataEclipseStoreLazy.Default<?>>,org.eclipse.serializer.persistence.types.PersistenceDataTypeHolder<org.eclipse.serializer.persistence.binary.types.Binary>,org.eclipse.serializer.persistence.types.PersistenceTypeDefinition,org.eclipse.serializer.persistence.types.PersistenceTypeDescription,org.eclipse.serializer.persistence.types.PersistenceTypeHandler<org.eclipse.serializer.persistence.binary.types.Binary,,SpringDataEclipseStoreLazy.Default<?>> org.eclipse.serializer.persistence.types.PersistenceTypeIdentity,org.eclipse.serializer.persistence.types.PersistenceTypeIdOwner,org.eclipse.serializer.persistence.types.PersistenceTypeLink
public final class SpringDataEclipseStoreLazyBinaryHandler
extends org.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom<SpringDataEclipseStoreLazy.Default<?>>
This is a complicated one. First off: this handler should only be used for WorkingCopies (see
EclipseSerializerRegisteringCopier)!
First case:
The user creates a SpringDataEclipseStoreLazy and puts a object in it.
This object is stored as with a default BinaryTypeHandler. But when it gets loaded,
it does not load as the stored object, but it gets wrapped in a Lazy.Reference(Object).
Second case:
The actual lazy object gets loaded from the actual storage. In this case the ObjectSwizzling is
important! It's the actual ObjectSwizzling from the storage (not from the
EclipseSerializerRegisteringCopier).
This means, the SpringDataEclipseStoreLazy holds the objectId of the original lazy in the original
storage.
Therefore if Lazy.get() is called a new working copy of the lazy from the
storage is loaded.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.serializer.persistence.binary.types.BinaryTypeHandler
org.eclipse.serializer.persistence.binary.types.BinaryTypeHandler.Abstract<T extends Object>Nested classes/interfaces inherited from interface org.eclipse.serializer.persistence.types.PersistenceDataTypeHolder
org.eclipse.serializer.persistence.types.PersistenceDataTypeHolder.Default<D extends Object>Nested classes/interfaces inherited from interface org.eclipse.serializer.persistence.types.PersistenceTypeDefinition
org.eclipse.serializer.persistence.types.PersistenceTypeDefinition.DefaultNested classes/interfaces inherited from interface org.eclipse.serializer.persistence.types.PersistenceTypeDescription
org.eclipse.serializer.persistence.types.PersistenceTypeDescription.Identity -
Constructor Summary
ConstructorsConstructorDescriptionSpringDataEclipseStoreLazyBinaryHandler(org.eclipse.serializer.reference.ObjectSwizzling originalStoreLoader, WorkingCopier<?> copier) -
Method Summary
Modifier and TypeMethodDescriptionfinal voidcomplete(org.eclipse.serializer.persistence.binary.types.Binary data, SpringDataEclipseStoreLazy.Default<?> instance, org.eclipse.serializer.persistence.types.PersistenceLoadHandler handler) create(org.eclipse.serializer.persistence.binary.types.Binary data, org.eclipse.serializer.persistence.types.PersistenceLoadHandler handler) final booleanfinal booleanfinal booleanfinal voiditerateLoadableReferences(org.eclipse.serializer.persistence.binary.types.Binary data, org.eclipse.serializer.persistence.types.PersistenceReferenceLoader iterator) voidstore(org.eclipse.serializer.persistence.binary.types.Binary data, SpringDataEclipseStoreLazy.Default<?> instance, long objectId, org.eclipse.serializer.persistence.types.PersistenceStoreHandler<org.eclipse.serializer.persistence.binary.types.Binary> handler) voidupdateState(org.eclipse.serializer.persistence.binary.types.Binary data, SpringDataEclipseStoreLazy.Default<?> instance, org.eclipse.serializer.persistence.types.PersistenceLoadHandler handler) Methods inherited from class org.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom
allMembers, bytes, calculcateBinaryLengths, chars, Complex, CustomField, CustomField, CustomFields, defineValueType, determineHasPersistedReferences, ensureInitializeInstanceMembers, getClassDeclaredField, getClassDeclaredFieldOffset, getInstanceFieldOfType, initializeFields, initializeInstanceMembers, instanceMembers, isPrimitiveType, iterateInstanceReferences, iterateMemberTypes, keyValuesFields, membersPersistedLengthMaximum, membersPersistedLengthMinimum, SimpleArrayFields, SizedArrayFieldsMethods inherited from class org.eclipse.serializer.persistence.binary.types.BinaryTypeHandler.Abstract
declaredField, declaredFieldMethods inherited from class org.eclipse.serializer.persistence.types.PersistenceTypeHandler.Abstract
declaredField, declaredFields, deriveTypeName, initialize, internalInitialize, toString, type, typeId, typeName, validateAndImmure, validateInstanceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.serializer.persistence.binary.types.BinaryTypeHandler
dataTypeMethods inherited from interface org.eclipse.serializer.persistence.types.PersistenceTypeDefinition
runtimeTypeName, toRuntimeTypeIdentifier, typeId, typeNameMethods inherited from interface org.eclipse.serializer.persistence.types.PersistenceTypeDescription
instancePrimitiveMembers, instanceReferenceMembers, toTypeIdentifierMethods inherited from interface org.eclipse.serializer.persistence.types.PersistenceTypeHandler
collectEnumConstants, getPersistedEnumOrdinal, guaranteeSpecificInstanceViablity, guaranteeSubTypeInstanceViablity, initialize, initializeState, isSpecificInstanceViable, isSubTypeInstanceViable, isValidEntityType, membersInDeclaredOrder, settingMembers, storingMembers, type, validateEntityType
-
Constructor Details
-
SpringDataEclipseStoreLazyBinaryHandler
public SpringDataEclipseStoreLazyBinaryHandler(org.eclipse.serializer.reference.ObjectSwizzling originalStoreLoader, WorkingCopier<?> copier)
-
-
Method Details
-
store
public void store(org.eclipse.serializer.persistence.binary.types.Binary data, SpringDataEclipseStoreLazy.Default<?> instance, long objectId, org.eclipse.serializer.persistence.types.PersistenceStoreHandler<org.eclipse.serializer.persistence.binary.types.Binary> handler) - Specified by:
storein interfaceorg.eclipse.serializer.persistence.types.PersistenceTypeHandler<org.eclipse.serializer.persistence.binary.types.Binary,SpringDataEclipseStoreLazy.Default<?>> - Specified by:
storein classorg.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom<SpringDataEclipseStoreLazy.Default<?>>
-
create
public SpringDataEclipseStoreLazy.Default<?> create(org.eclipse.serializer.persistence.binary.types.Binary data, org.eclipse.serializer.persistence.types.PersistenceLoadHandler handler) - Specified by:
createin interfaceorg.eclipse.serializer.persistence.types.PersistenceTypeHandler<org.eclipse.serializer.persistence.binary.types.Binary,SpringDataEclipseStoreLazy.Default<?>> - Specified by:
createin classorg.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom<SpringDataEclipseStoreLazy.Default<?>>
-
updateState
public void updateState(org.eclipse.serializer.persistence.binary.types.Binary data, SpringDataEclipseStoreLazy.Default<?> instance, org.eclipse.serializer.persistence.types.PersistenceLoadHandler handler) -
complete
public final void complete(org.eclipse.serializer.persistence.binary.types.Binary data, SpringDataEclipseStoreLazy.Default<?> instance, org.eclipse.serializer.persistence.types.PersistenceLoadHandler handler) - Specified by:
completein interfaceorg.eclipse.serializer.persistence.types.PersistenceTypeHandler<org.eclipse.serializer.persistence.binary.types.Binary,SpringDataEclipseStoreLazy.Default<?>> - Overrides:
completein classorg.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom<SpringDataEclipseStoreLazy.Default<?>>
-
hasPersistedReferences
public final boolean hasPersistedReferences()- Specified by:
hasPersistedReferencesin interfaceorg.eclipse.serializer.persistence.types.PersistenceTypeDefinition- Overrides:
hasPersistedReferencesin classorg.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom<SpringDataEclipseStoreLazy.Default<?>>
-
hasPersistedVariableLength
public final boolean hasPersistedVariableLength() -
hasVaryingPersistedLengthInstances
public final boolean hasVaryingPersistedLengthInstances()- Specified by:
hasVaryingPersistedLengthInstancesin interfaceorg.eclipse.serializer.persistence.types.PersistenceTypeDefinition- Overrides:
hasVaryingPersistedLengthInstancesin classorg.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom<SpringDataEclipseStoreLazy.Default<?>>
-
iterateLoadableReferences
public final void iterateLoadableReferences(org.eclipse.serializer.persistence.binary.types.Binary data, org.eclipse.serializer.persistence.types.PersistenceReferenceLoader iterator)
-