Module org.eclipse.persistence.core
Class InterfacePolicy
- java.lang.Object
-
- org.eclipse.persistence.descriptors.InterfacePolicy
-
- All Implemented Interfaces:
Serializable,Cloneable
- Direct Known Subclasses:
TablePerClassPolicy
public class InterfacePolicy extends Object implements Serializable, Cloneable
Purpose: Allows for a descriptor's implemented interfaces to be configured. Generally Interface Descriptors are used for 1 of 2 reasons:a. Interface descriptors can be used to query across a set of classes that do not share a table.
b. As a target of a variable one to one mapping.- Since:
- TopLink for Java 2.0
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected List<ClassDescriptor>childDescriptorsprotected ClassDescriptordescriptorprotected Class<?>implementorDescriptorprotected StringimplementorDescriptorClassNameprotected List<ClassDescriptor>parentDescriptorsprotected List<String>parentInterfaceNamesprotected List<Class<?>>parentInterfaces
-
Constructor Summary
Constructors Constructor Description InterfacePolicy()INTERNAL: Create a new policy.InterfacePolicy(ClassDescriptor descriptor)INTERNAL: Create a new policy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddChildDescriptor(ClassDescriptor childDescriptor)INTERNAL: Add child descriptor to the parent descriptor.voidaddParentDescriptor(ClassDescriptor parentDescriptor)INTERNAL: Add parent descriptor.voidaddParentInterface(Class<?> parentInterface)PUBLIC: Add the parent Interface class.voidaddParentInterfaceName(String parentInterfaceName)voidconvertClassNamesToClasses(ClassLoader classLoader)INTERNAL: Convert all the class-name-based settings in this InheritancePolicy to actual class-based settings.List<ClassDescriptor>getChildDescriptors()INTERNAL: Return all the child descriptors.protected ClassDescriptorgetDescriptor()<T> Class<T>getImplementorDescriptor()INTERNAL: Returns the implementor descriptor class.StringgetImplementorDescriptorClassName()INTERNAL: Returns the implementor descriptor class name.List<ClassDescriptor>getParentDescriptors()INTERNAL: Return all the parent descriptors.List<String>getParentInterfaceNames()List<Class<?>>getParentInterfaces()INTERNAL: Return the list of parent interfaces.booleanhasChild()INTERNAL: Return if there are any child descriptors.voidinitialize(AbstractSession session)INTERNAL: Set the vector to store parent interfaces.booleanisInterfaceChildDescriptor()INTERNAL: Check if it is a child descriptor.booleanisTablePerClassPolicy()INTERNAL:protected ObjectLevelReadQueryprepareQuery(ObjectLevelReadQuery query)INTERNAL: Select all objects for a concrete descriptor.protected ObjectselectAllObjects(ReadAllQuery query)INTERNAL: Select all objects for a concrete descriptor.ObjectselectAllObjectsUsingMultipleTableSubclassRead(ReadAllQuery query)INTERNAL: Select all objects for an interface descriptor.protected ObjectselectOneObject(ReadObjectQuery query)INTERNAL: Select one object of any concrete subclass.ObjectselectOneObjectUsingMultipleTableSubclassRead(ReadObjectQuery query)INTERNAL: Select one object of any concrete subclass.voidsetDescriptor(ClassDescriptor descriptor)INTERNAL: Set the descriptor.voidsetImplementorDescriptor(Class<?> implementorDescriptor)INTERNAL: Sets the implementor descriptor class.voidsetImplementorDescriptorClassName(String implementorDescriptorClassName)INTERNAL: Sets the implementor descriptor class name.voidsetParentInterfaceNames(List<String> parentInterfaceNames)voidsetParentInterfaces(List<Class<?>> parentInterfaces)Set the Vector to store parent interfaces.booleanusesImplementorDescriptor()INTERNAL: Returns true if this descriptor should be ignored and the implementing descriptor should be used instead.
-
-
-
Field Detail
-
parentDescriptors
protected List<ClassDescriptor> parentDescriptors
-
childDescriptors
protected List<ClassDescriptor> childDescriptors
-
descriptor
protected ClassDescriptor descriptor
-
implementorDescriptor
protected Class<?> implementorDescriptor
-
implementorDescriptorClassName
protected String implementorDescriptorClassName
-
-
Constructor Detail
-
InterfacePolicy
public InterfacePolicy()
INTERNAL: Create a new policy. Only descriptor involved in interface should have a policy.
-
InterfacePolicy
public InterfacePolicy(ClassDescriptor descriptor)
INTERNAL: Create a new policy. Only descriptor involved in interface should have a policy.
-
-
Method Detail
-
addChildDescriptor
public void addChildDescriptor(ClassDescriptor childDescriptor)
INTERNAL: Add child descriptor to the parent descriptor.
-
addParentDescriptor
public void addParentDescriptor(ClassDescriptor parentDescriptor)
INTERNAL: Add parent descriptor.
-
addParentInterface
public void addParentInterface(Class<?> parentInterface)
PUBLIC: Add the parent Interface class. This method should be called once for each parent Interface of the Descriptor.
-
addParentInterfaceName
public void addParentInterfaceName(String parentInterfaceName)
-
hasChild
public boolean hasChild()
INTERNAL: Return if there are any child descriptors.
-
getChildDescriptors
public List<ClassDescriptor> getChildDescriptors()
INTERNAL: Return all the child descriptors.
-
getDescriptor
protected ClassDescriptor getDescriptor()
-
getImplementorDescriptor
public <T> Class<T> getImplementorDescriptor()
INTERNAL: Returns the implementor descriptor class.
-
getImplementorDescriptorClassName
public String getImplementorDescriptorClassName()
INTERNAL: Returns the implementor descriptor class name.
-
getParentDescriptors
public List<ClassDescriptor> getParentDescriptors()
INTERNAL: Return all the parent descriptors.
-
getParentInterfaces
public List<Class<?>> getParentInterfaces()
INTERNAL: Return the list of parent interfaces.
-
convertClassNamesToClasses
public void convertClassNamesToClasses(ClassLoader classLoader)
INTERNAL: Convert all the class-name-based settings in this InheritancePolicy 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. It will also convert referenced classes to the versions of the classes from the classLoader.
-
initialize
public void initialize(AbstractSession session)
INTERNAL: Set the vector to store parent interfaces.
-
isInterfaceChildDescriptor
public boolean isInterfaceChildDescriptor()
INTERNAL: Check if it is a child descriptor.
-
isTablePerClassPolicy
public boolean isTablePerClassPolicy()
INTERNAL:
-
selectAllObjects
protected Object selectAllObjects(ReadAllQuery query)
INTERNAL: Select all objects for a concrete descriptor.
-
prepareQuery
protected ObjectLevelReadQuery prepareQuery(ObjectLevelReadQuery query)
INTERNAL: Select all objects for a concrete descriptor.
-
selectAllObjectsUsingMultipleTableSubclassRead
public Object selectAllObjectsUsingMultipleTableSubclassRead(ReadAllQuery query) throws DatabaseException
INTERNAL: Select all objects for an interface descriptor. This is accomplished by selecting for all of the concrete classes and then merging the objects.- Throws:
DatabaseException
-
selectOneObject
protected Object selectOneObject(ReadObjectQuery query) throws DescriptorException
INTERNAL: Select one object of any concrete subclass.- Throws:
DescriptorException
-
selectOneObjectUsingMultipleTableSubclassRead
public Object selectOneObjectUsingMultipleTableSubclassRead(ReadObjectQuery query) throws DatabaseException, QueryException
INTERNAL: Select one object of any concrete subclass.- Throws:
DatabaseExceptionQueryException
-
setDescriptor
public void setDescriptor(ClassDescriptor descriptor)
INTERNAL: Set the descriptor.
-
setImplementorDescriptor
public void setImplementorDescriptor(Class<?> implementorDescriptor)
INTERNAL: Sets the implementor descriptor class.
-
setImplementorDescriptorClassName
public void setImplementorDescriptorClassName(String implementorDescriptorClassName)
INTERNAL: Sets the implementor descriptor class name.
-
setParentInterfaces
public void setParentInterfaces(List<Class<?>> parentInterfaces)
Set the Vector to store parent interfaces.
-
usesImplementorDescriptor
public boolean usesImplementorDescriptor()
INTERNAL: Returns true if this descriptor should be ignored and the implementing descriptor should be used instead.
-
-