Module org.eclipse.persistence.core
Class InterfaceContainerPolicy
- java.lang.Object
-
- org.eclipse.persistence.internal.queries.ContainerPolicy
-
- org.eclipse.persistence.internal.queries.InterfaceContainerPolicy
-
- All Implemented Interfaces:
Serializable,Cloneable,CoreContainerPolicy<AbstractSession>
- Direct Known Subclasses:
CollectionContainerPolicy,MapContainerPolicy
public abstract class InterfaceContainerPolicy extends ContainerPolicy
Purpose: The abstract class for ContainerPolicy's whose container class implements a container interface.
-
-
Field Summary
Fields Modifier and Type Field Description protected MethodcloneMethodThe method which will return a clone of an instance of the containerClass.protected Class<?>containerClassThe concrete container class.protected StringcontainerClassName-
Fields inherited from class org.eclipse.persistence.internal.queries.ContainerPolicy
constructor, defaultContainerClass, elementDescriptor
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedInterfaceContainerPolicy()INTERNAL: Construct a new policy.protectedInterfaceContainerPolicy(Class<?> containerClass)INTERNAL: Construct a new policy for the specified class.protectedInterfaceContainerPolicy(String containerClassName)INTERNAL: Construct a new policy for the specified class name.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description ObjectbuildContainerFromVector(Vector vector, AbstractSession session)INTERNAL: Return a container populated with the contents of the specified Vector.ObjectcloneFor(Object container)INTERNAL: Return a clone of the specified container.voidconvertClassNamesToClasses(ClassLoader classLoader)INTERNAL: Convert all the class-name-based settings in this ContainerPolicy to actual class-based settings.CollectionChangeEventcreateChangeEvent(Object collectionOwner, String propertyName, Object collectionChanged, Object elementChanged, int changeType, Integer index, boolean isChangeApplied)INTERNAL: Creates a CollectionChangeEvent for the containerQueryKeycreateQueryKeyForMapKey()INTERNAL: Create a query key that links to the map key InterfaceContainerPolicy does not support maps, so this method will return null subclasses will extend this method.booleanequals(Object object)INTERNAL: Return if the policy is equal to the other.MethodgetCloneMethod()INTERNAL: Return the 'clone()' Method for the container class.protected MethodgetCloneMethod(Class<?> javaClass)INTERNAL: Return the 'clone()' Method for the specified class.Class<?>getContainerClass()INTERNAL: Returns the container class to be used with this policy.StringgetContainerClassName()INTERNAL: Used by the MWDatabaseFieldgetDirectKeyField(CollectionMapping mapping)INTERNAL: Return the DatabaseField that represents the key in a DirectMapMapping.abstract Class<?>getInterfaceType()inthashCode()booleanhasNext(Object iterator)INTERNAL: Return whether the iterator has more objects,protected ObjectinvokeCloneMethodOn(Method method, Object container)INTERNAL: Invoke the specified clone method on the container, handling the necessary exceptions.booleanisMapKeyAttribute()INTERNAL: Return whether a map key this container policy represents is an attribute By default this method will return false since only subclasses actually represent maps.booleanisValidContainerType(Class<?> containerType)INTERNAL: Validate the container type.protected Objectnext(Object iterator)INTERNAL: Return the next object on the queue.voidsetCloneMethod(Method cloneMethod)INTERNAL: Set the Method that will return a clone of an instance of the containerClass.voidsetContainerClass(Class<?> containerClass)INTERNAL: Set the class to use as the container.voidsetContainerClassName(String containerClassName)INTERNAL: Used by the MWprotected ObjecttoStringInfo()-
Methods inherited from class org.eclipse.persistence.internal.queries.ContainerPolicy
addAdditionalFieldsToQuery, addAll, addAll, addFieldsForMapKey, addInto, addInto, addInto, addInto, addNestedJoinsQueriesForMapKey, addNextValueFromIteratorInto, buildChangeSetForNewObjectInCollection, buildCloneForKey, buildCollectionEntry, buildDefaultPolicy, buildKey, buildKeyFromJoinedRow, buildPolicyFor, buildPolicyFor, buildReferencesPKList, buildSelectionQueryForDirectCollectionMapping, cascadeDiscoverAndPersistUnregisteredNewObjects, cascadePerformRemoveIfRequired, cascadeRegisterNewIfRequired, clear, clone, clone, collectObjectForNewCollection, compareCollectionsForChange, compareKeys, concatenateContainers, containerInstance, containerInstance, contains, contains, copyMapDataToRow, createChangeSetForKeys, createWrappedObjectFromExistingWrappedObject, deleteWrappedObject, execute, getAdditionalFieldsForJoin, getAdditionalTablesForJoinQuery, getChangeValuesFrom, getCloneDataFromChangeSet, getConstructor, getDefaultContainerClass, getDescriptorForMapKey, getElementDescriptor, getIdentityFieldsForMapKey, getKeyMappingDataForWriteQuery, getKeySelectionCriteria, getKeyType, hasElementDescriptor, hasOrder, initialize, initializeConstructor, isCollectionPolicy, isCursoredStreamPolicy, isCursorPolicy, isDirectMapPolicy, isEmpty, isListPolicy, isMapKeyObject, isMappedKeyMapPolicy, isMapPolicy, isOrderedListPolicy, isScrollableCursorPolicy, isValidContainer, iterateOnMapKey, iteratorFor, keyFrom, keyFromEntry, keyFromIterator, mergeCascadeParts, mergeChanges, mergeChanges, next, nextEntry, nextEntry, overridesRead, postCalculateChanges, postCalculateChanges, postInitialize, prepare, prepareForExecution, processAdditionalWritableMapKeyFields, propagatesEventsToCollection, propogatePostDelete, propogatePostInsert, propogatePostUpdate, propogatePreDelete, propogatePreInsert, propogatePreUpdate, recordAddToCollectionInChangeRecord, recordPrivateOwnedRemovals, recordRemoveFromCollectionInChangeRecord, recordUpdateToCollectionInChangeRecord, remoteExecute, removeFrom, removeFrom, removeFrom, requiresDataModificationEvents, setConstructor, setDefaultContainerClass, setElementDescriptor, setKeyName, setKeyName, shouldAddAll, shouldIncludeKeyInDeleteEvent, shouldUpdateForeignKeysPostInsert, sizeFor, toString, unwrapElement, unwrapIteratorResult, updateChangeRecordForSelfMerge, updateJoinedMappingIndexesForMapKey, valueFromPKList, vectorFor
-
-
-
-
Constructor Detail
-
InterfaceContainerPolicy
protected InterfaceContainerPolicy()
INTERNAL: Construct a new policy.
-
InterfaceContainerPolicy
protected InterfaceContainerPolicy(Class<?> containerClass)
INTERNAL: Construct a new policy for the specified class.
-
InterfaceContainerPolicy
protected InterfaceContainerPolicy(String containerClassName)
INTERNAL: Construct a new policy for the specified class name.
-
-
Method Detail
-
equals
public boolean equals(Object object)
INTERNAL: Return if the policy is equal to the other. By default if they are the same class, they are considered equal. This is used for query parse caching.- Overrides:
equalsin classContainerPolicy
-
hashCode
public int hashCode()
- Overrides:
hashCodein classContainerPolicy
-
cloneFor
public Object cloneFor(Object container)
INTERNAL: Return a clone of the specified container.- Overrides:
cloneForin classContainerPolicy
-
convertClassNamesToClasses
public void convertClassNamesToClasses(ClassLoader classLoader)
INTERNAL: Convert all the class-name-based settings in this ContainerPolicy to actual class-based settings. This method is used when converting a project that has been built with class names to a project with classes.- Overrides:
convertClassNamesToClassesin classContainerPolicy
-
createChangeEvent
public CollectionChangeEvent createChangeEvent(Object collectionOwner, String propertyName, Object collectionChanged, Object elementChanged, int changeType, Integer index, boolean isChangeApplied)
INTERNAL: Creates a CollectionChangeEvent for the container- Specified by:
createChangeEventin classContainerPolicy
-
createQueryKeyForMapKey
public QueryKey createQueryKeyForMapKey()
INTERNAL: Create a query key that links to the map key InterfaceContainerPolicy does not support maps, so this method will return null subclasses will extend this method.
-
getCloneMethod
public Method getCloneMethod()
INTERNAL: Return the 'clone()' Method for the container class. Lazy initialization is used, so we can serialize these things.
-
getCloneMethod
protected Method getCloneMethod(Class<?> javaClass)
INTERNAL: Return the 'clone()' Method for the specified class. Return null if the method does not exist anywhere in the hierarchy
-
getContainerClass
public Class<?> getContainerClass()
INTERNAL: Returns the container class to be used with this policy.- Overrides:
getContainerClassin classContainerPolicy
-
getContainerClassName
public String getContainerClassName()
Description copied from class:ContainerPolicyINTERNAL: Used by the MW- Overrides:
getContainerClassNamein classContainerPolicy
-
getDirectKeyField
public DatabaseField getDirectKeyField(CollectionMapping mapping)
INTERNAL: Return the DatabaseField that represents the key in a DirectMapMapping. If the keyMapping is not a DirectMapping, this will return null.
-
getInterfaceType
public abstract Class<?> getInterfaceType()
-
hasNext
public boolean hasNext(Object iterator)
INTERNAL: Return whether the iterator has more objects,- Specified by:
hasNextin interfaceCoreContainerPolicy<AbstractSession>- Specified by:
hasNextin classContainerPolicy- See Also:
ContainerPolicy.iteratorFor(java.lang.Object)
-
invokeCloneMethodOn
protected Object invokeCloneMethodOn(Method method, Object container)
INTERNAL: Invoke the specified clone method on the container, handling the necessary exceptions.
-
isMapKeyAttribute
public boolean isMapKeyAttribute()
INTERNAL: Return whether a map key this container policy represents is an attribute By default this method will return false since only subclasses actually represent maps.
-
isValidContainerType
public boolean isValidContainerType(Class<?> containerType)
INTERNAL: Validate the container type.- Overrides:
isValidContainerTypein classContainerPolicy
-
next
protected Object next(Object iterator)
INTERNAL: Return the next object on the queue. Valid for some subclasses only.- Specified by:
nextin classContainerPolicy- See Also:
ContainerPolicy.iteratorFor(java.lang.Object)
-
setCloneMethod
public void setCloneMethod(Method cloneMethod)
INTERNAL: Set the Method that will return a clone of an instance of the containerClass.
-
setContainerClass
public void setContainerClass(Class<?> containerClass)
INTERNAL: Set the class to use as the container.- Specified by:
setContainerClassin interfaceCoreContainerPolicy<AbstractSession>- Overrides:
setContainerClassin classContainerPolicy
-
setContainerClassName
public void setContainerClassName(String containerClassName)
Description copied from class:ContainerPolicyINTERNAL: Used by the MW- Overrides:
setContainerClassNamein classContainerPolicy
-
buildContainerFromVector
public Object buildContainerFromVector(Vector vector, AbstractSession session)
INTERNAL: Return a container populated with the contents of the specified Vector.- Overrides:
buildContainerFromVectorin classContainerPolicy
-
toStringInfo
protected Object toStringInfo()
- Overrides:
toStringInfoin classContainerPolicy
-
-