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 Method
cloneMethod
The method which will return a clone of an instance of the containerClass.protected Class
containerClass
The concrete container class.protected String
containerClassName
-
Fields inherited from class org.eclipse.persistence.internal.queries.ContainerPolicy
constructor, defaultContainerClass, elementDescriptor
-
-
Constructor Summary
Constructors Constructor Description InterfaceContainerPolicy()
INTERNAL: Construct a new policy.InterfaceContainerPolicy(Class containerClass)
INTERNAL: Construct a new policy for the specified class.InterfaceContainerPolicy(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 Object
buildContainerFromVector(Vector vector, AbstractSession session)
INTERNAL: Return a container populated with the contents of the specified Vector.Object
cloneFor(Object container)
INTERNAL: Return a clone of the specified container.void
convertClassNamesToClasses(ClassLoader classLoader)
INTERNAL: Convert all the class-name-based settings in this ContainerPolicy to actual class-based settings.CollectionChangeEvent
createChangeEvent(Object collectionOwner, String propertyName, Object collectionChanged, Object elementChanged, int changeType, Integer index, boolean isChangeApplied)
INTERNAL: Creates a CollectionChangeEvent for the containerQueryKey
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.boolean
equals(Object object)
INTERNAL: Return if the policy is equal to the other.Method
getCloneMethod()
INTERNAL: Return the 'clone()' Method for the container class.protected Method
getCloneMethod(Class javaClass)
INTERNAL: Return the 'clone()' Method for the specified class.Class
getContainerClass()
INTERNAL: Returns the container class to be used with this policy.String
getContainerClassName()
INTERNAL: Used by the MWDatabaseField
getDirectKeyField(CollectionMapping mapping)
INTERNAL: Return the DatabaseField that represents the key in a DirectMapMapping.abstract Class
getInterfaceType()
int
hashCode()
boolean
hasNext(Object iterator)
INTERNAL: Return whether the iterator has more objects,protected Object
invokeCloneMethodOn(Method method, Object container)
INTERNAL: Invoke the specified clone method on the container, handling the necessary exceptions.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.boolean
isValidContainerType(Class containerType)
INTERNAL: Validate the container type.protected Object
next(Object iterator)
INTERNAL: Return the next object on the queue.void
setCloneMethod(Method cloneMethod)
INTERNAL: Set the Method that will return a clone of an instance of the containerClass.void
setContainerClass(Class containerClass)
INTERNAL: Set the class to use as the container.void
setContainerClassName(String containerClassName)
INTERNAL: Used by the MWprotected Object
toStringInfo()
-
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
public InterfaceContainerPolicy()
INTERNAL: Construct a new policy.
-
InterfaceContainerPolicy
public InterfaceContainerPolicy(Class containerClass)
INTERNAL: Construct a new policy for the specified class.
-
InterfaceContainerPolicy
public 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:
equals
in classContainerPolicy
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classContainerPolicy
-
cloneFor
public Object cloneFor(Object container)
INTERNAL: Return a clone of the specified container.- Overrides:
cloneFor
in 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:
convertClassNamesToClasses
in classContainerPolicy
- Parameters:
classLoader
-
-
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:
createChangeEvent
in 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:
getContainerClass
in classContainerPolicy
-
getContainerClassName
public String getContainerClassName()
Description copied from class:ContainerPolicy
INTERNAL: Used by the MW- Overrides:
getContainerClassName
in 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:
hasNext
in interfaceCoreContainerPolicy<AbstractSession>
- Specified by:
hasNext
in 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:
isValidContainerType
in classContainerPolicy
-
next
protected Object next(Object iterator)
INTERNAL: Return the next object on the queue. Valid for some subclasses only.- Specified by:
next
in 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:
setContainerClass
in interfaceCoreContainerPolicy<AbstractSession>
- Overrides:
setContainerClass
in classContainerPolicy
-
setContainerClassName
public void setContainerClassName(String containerClassName)
Description copied from class:ContainerPolicy
INTERNAL: Used by the MW- Overrides:
setContainerClassName
in classContainerPolicy
-
buildContainerFromVector
public Object buildContainerFromVector(Vector vector, AbstractSession session)
INTERNAL: Return a container populated with the contents of the specified Vector.- Overrides:
buildContainerFromVector
in classContainerPolicy
-
toStringInfo
protected Object toStringInfo()
- Overrides:
toStringInfo
in classContainerPolicy
-
-