Class CompleteClassTable
java.lang.Object
org.datanucleus.store.schema.table.CompleteClassTable
- All Implemented Interfaces:
Table
Representation of a table for a class where the class is stored in "complete-table" inheritance (or in JPA "TablePerClass")
whereby all members (in this class and superclasses) are handled in this table. Also assumes that any persistable fields
and collection/map fields are stored in this table (i.e not usable where you have foreign keys in the datastore).
Allows for each member to have potentially multiple columns (using MemberColumnMapping).
Each column generated will have its position set (origin = 0) and respects "ColumnMetaData.position".
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) String(package private) AbstractClassMetaDataMap of DatastoreColumn, keyed by the column identifier.(package private) Column(package private) Column(package private) String(package private) Map<String, MemberColumnMapping> Map of member-column mapping, keyed by the navigated path of embedded members.(package private) Map<String, MemberColumnMapping> Map of member-column mapping, keyed by the metadata for the member.(package private) Column(package private) String(package private) SchemaVerifier(package private) Column(package private) StoreManager(package private) Column -
Constructor Summary
ConstructorsConstructorDescriptionCompleteClassTable(StoreManager storeMgr, AbstractClassMetaData cmd, SchemaVerifier verifier) -
Method Summary
Modifier and TypeMethodDescriptionprotected ColumnImpladdColumn(AbstractMemberMetaData mmd, String colName) protected ColumnImpladdColumn(AbstractMemberMetaData mmd, String colName, ColumnType colType) protected ColumnImpladdEmbeddedColumn(String colName, TypeConverter typeConv) Accessor for the primary class metadata for this table.getColumnForName(String name) Accessor for the column with the supplied name (if present).getColumnForPosition(int pos) Accessor for the column at the specified position (numbered from 0 to numcols-1).private StringMethod to return the member-column mapping for the specified embedded member.Method to return the member-column mapping for the specified member.getName()intAccessor for number of columns.getSurrogateColumn(SurrogateColumnType colType) Accessor for the surrogate column of the specified type.protected TypeConvertergetTypeConverterForMember(AbstractMemberMetaData mmd, ColumnMetaData[] colmds, TypeManager typeMgr) protected voidprocessEmbeddedMember(List<AbstractMemberMetaData> mmds, AbstractClassMetaData embCmd, ClassLoaderResolver clr, EmbeddedMetaData embmd, boolean ownerNested) Handler for an embedded member.toString()
-
Field Details
-
storeMgr
StoreManager storeMgr -
cmd
-
catalogName
String catalogName -
schemaName
String schemaName -
identifier
String identifier -
columns
-
versionColumn
Column versionColumn -
discriminatorColumn
Column discriminatorColumn -
datastoreIdColumn
Column datastoreIdColumn -
multitenancyColumn
Column multitenancyColumn -
softDeleteColumn
Column softDeleteColumn -
mappingByMember
Map<String, MemberColumnMapping> mappingByMemberMap of member-column mapping, keyed by the metadata for the member. -
mappingByEmbeddedMember
Map<String, MemberColumnMapping> mappingByEmbeddedMemberMap of member-column mapping, keyed by the navigated path of embedded members. -
columnByName
-
schemaVerifier
SchemaVerifier schemaVerifier
-
-
Constructor Details
-
CompleteClassTable
public CompleteClassTable(StoreManager storeMgr, AbstractClassMetaData cmd, SchemaVerifier verifier)
-
-
Method Details
-
getTypeConverterForMember
protected TypeConverter getTypeConverterForMember(AbstractMemberMetaData mmd, ColumnMetaData[] colmds, TypeManager typeMgr) -
processEmbeddedMember
protected void processEmbeddedMember(List<AbstractMemberMetaData> mmds, AbstractClassMetaData embCmd, ClassLoaderResolver clr, EmbeddedMetaData embmd, boolean ownerNested) Handler for an embedded member.- Parameters:
mmds- Chain of member metadata to the embedded memberembCmd- Class metadata for the embedded member typeclr- ClassLoader resolverembmd- Any EmbeddedMetaData defining column infoownerNested- Whether the owner is nested
-
addColumn
-
addColumn
-
addEmbeddedColumn
-
getClassMetaData
Description copied from interface:TableAccessor for the primary class metadata for this table.- Specified by:
getClassMetaDatain interfaceTable- Returns:
- Class metadata
-
getStoreManager
- Specified by:
getStoreManagerin interfaceTable
-
getSchemaName
- Specified by:
getSchemaNamein interfaceTable
-
getCatalogName
- Specified by:
getCatalogNamein interfaceTable
-
getName
-
getNumberOfColumns
public int getNumberOfColumns()Description copied from interface:TableAccessor for number of columns.- Specified by:
getNumberOfColumnsin interfaceTable- Returns:
- Number of cols
-
getColumns
- Specified by:
getColumnsin interfaceTable
-
getColumnForPosition
Description copied from interface:TableAccessor for the column at the specified position (numbered from 0 to numcols-1).- Specified by:
getColumnForPositionin interfaceTable- Parameters:
pos- Position of the column- Returns:
- The column at this position (or null if invalid position)
-
getSurrogateColumn
Description copied from interface:TableAccessor for the surrogate column of the specified type.- Specified by:
getSurrogateColumnin interfaceTable- Parameters:
colType- The type of surrogate column- Returns:
- The column definition, if it exists for this table
-
getColumnForName
Description copied from interface:TableAccessor for the column with the supplied name (if present).- Specified by:
getColumnForNamein interfaceTable- Parameters:
name- name of the column (the identifier)- Returns:
- The column (or null if none present with that name)
-
getMemberColumnMappingForMember
Description copied from interface:TableMethod to return the member-column mapping for the specified member.- Specified by:
getMemberColumnMappingForMemberin interfaceTable- Parameters:
mmd- Metadata for the member- Returns:
- The member-column mapping
-
getMemberColumnMappingForEmbeddedMember
public MemberColumnMapping getMemberColumnMappingForEmbeddedMember(List<AbstractMemberMetaData> mmds) Description copied from interface:TableMethod to return the member-column mapping for the specified embedded member.- Specified by:
getMemberColumnMappingForEmbeddedMemberin interfaceTable- Parameters:
mmds- Metadata for the member(s) to navigate to the required member- Returns:
- The member-column mapping
-
getMemberColumnMappings
- Specified by:
getMemberColumnMappingsin interfaceTable
-
toString
-
debugString
-