public class QNameInheritancePolicy extends InheritancePolicy
Purpose: A Subclass of Inheritance Policy to be used with XML Descriptors. If the class indicator field is an xsi:type, the value of that field may be a qualified type name. For example xsi:type="myns:my-type-name". Since any given XML document can use different prefixes for these namespaces, we must be able to find the class based on QName instead of just the string "myns:my-type-name".
Constructor and Description |
---|
QNameInheritancePolicy() |
QNameInheritancePolicy(ClassDescriptor desc) |
Modifier and Type | Method and Description |
---|---|
void |
addClassIndicatorFieldToRow(AbstractRecord databaseRow)
INTERNAL:
Add abstract class indicator information to the database row.
|
java.lang.Class |
classFromRow(AbstractRecord rowFromDatabase,
AbstractSession session)
INTERNAL:
This method is invoked only for the abstract descriptors.
|
void |
initialize(AbstractSession session)
INTERNAL:
Initialized the inheritance properties of the descriptor once the mappings are initialized.
|
void |
preInitialize(AbstractSession session)
INTERNAL:
Allow the inheritance properties of the descriptor to be initialized.
|
void |
setClassIndicatorFieldName(java.lang.String fieldName)
PUBLIC:
To set the class indicator field name.
|
void |
setNamespaceResolver(NamespaceResolver resolver) |
addChildDescriptor, addChildTableJoinExpressionToAllParents, addClassIndicator, addClassIndicatorFieldToInsertRow, addClassNameIndicator, appendWithAllSubclassesExpression, buildClassIndicatorSelectStatement, buildViewSelectStatement, classFromValue, clone, convertClassNamesToClasses, dontReadSubclassesOnQueries, dontUseClassNameAsIndicator, getAllChildDescriptors, getAllTables, getChildDescriptors, getChildrenJoinExpression, getChildrenTables, getChildrenTablesJoinExpressions, getClassExtractionMethodName, getClassExtractor, getClassIndicatorAssociations, getClassIndicatorField, getClassIndicatorFieldName, getClassIndicatorMapping, getClassNameIndicatorMapping, getDescribesNonPersistentSubclasses, getDescriptor, getDescriptor, getOnlyInstancesExpression, getParentClass, getParentClassName, getParentDescriptor, getReadAllSubclassesView, getReadAllSubclassesViewName, getRootParentDescriptor, getSubclassDescriptor, getUseDescriptorsToValidateInheritedObjects, getWithAllSubclassesExpression, hasChildren, hasClassExtractor, hasClassIndicator, hasMultipleTableChild, hasView, isChildDescriptor, isJoinedStrategy, isRootParentDescriptor, postInitialize, readSubclassesOnQueries, remoteInitialization, requiresMultipleTableSubclassRead, selectAllRowUsingMultipleTableSubclassRead, selectOneRowUsingMultipleTableSubclassRead, setAlwaysUseOuterJoinForClassType, setChildDescriptors, setClassExtractionMethodName, setClassExtractor, setClassExtractorName, setClassIndicatorAssociations, setClassIndicatorField, setClassIndicatorMapping, setClassNameIndicatorMapping, setDescribesNonPersistentSubclasses, setDescriptor, setJoinedStrategy, setOnlyInstancesExpression, setParentClass, setParentClassName, setParentDescriptor, setReadAllSubclassesViewName, setShouldOuterJoinSubclasses, setShouldReadSubclasses, setShouldReadSubclasses, setShouldUseClassNameAsIndicator, setSingleTableStrategy, setUseDescriptorsToValidateInheritedObjects, setWithAllSubclassesExpression, shouldAlwaysUseOuterJoin, shouldOuterJoinSubclasses, shouldReadSubclasses, shouldReadSubclassesValue, shouldUseClassNameAsIndicator, toString, useClassNameAsIndicator
public QNameInheritancePolicy()
public QNameInheritancePolicy(ClassDescriptor desc)
public void preInitialize(AbstractSession session) throws DescriptorException
preInitialize
in class InheritancePolicy
DescriptorException
public void initialize(AbstractSession session)
initialize
in class InheritancePolicy
public java.lang.Class classFromRow(AbstractRecord rowFromDatabase, AbstractSession session) throws DescriptorException
classFromRow
in class InheritancePolicy
DescriptorException
public void setNamespaceResolver(NamespaceResolver resolver)
public void setClassIndicatorFieldName(java.lang.String fieldName)
setClassIndicatorFieldName
in class InheritancePolicy
public void addClassIndicatorFieldToRow(AbstractRecord databaseRow)
addClassIndicatorFieldToRow
in class InheritancePolicy
EclipseLink 2.6.3, "build v20160428-59c81c5" API Reference