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) AbstractClassMetaData
Map 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 ColumnImpl
addColumn
(AbstractMemberMetaData mmd, String colName) protected ColumnImpl
addColumn
(AbstractMemberMetaData mmd, String colName, ColumnType colType) protected ColumnImpl
addEmbeddedColumn
(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 String
Method to return the member-column mapping for the specified embedded member.Method to return the member-column mapping for the specified member.getName()
int
Accessor for number of columns.getSurrogateColumn
(SurrogateColumnType colType) Accessor for the surrogate column of the specified type.protected TypeConverter
getTypeConverterForMember
(AbstractMemberMetaData mmd, ColumnMetaData[] colmds, TypeManager typeMgr) protected void
processEmbeddedMember
(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
Map of DatastoreColumn, keyed by the column identifier. -
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:Table
Accessor for the primary class metadata for this table.- Specified by:
getClassMetaData
in interfaceTable
- Returns:
- Class metadata
-
getStoreManager
- Specified by:
getStoreManager
in interfaceTable
-
getSchemaName
- Specified by:
getSchemaName
in interfaceTable
-
getCatalogName
- Specified by:
getCatalogName
in interfaceTable
-
getName
-
getNumberOfColumns
public int getNumberOfColumns()Description copied from interface:Table
Accessor for number of columns.- Specified by:
getNumberOfColumns
in interfaceTable
- Returns:
- Number of cols
-
getColumns
- Specified by:
getColumns
in interfaceTable
-
getColumnForPosition
Description copied from interface:Table
Accessor for the column at the specified position (numbered from 0 to numcols-1).- Specified by:
getColumnForPosition
in interfaceTable
- Parameters:
pos
- Position of the column- Returns:
- The column at this position (or null if invalid position)
-
getSurrogateColumn
Description copied from interface:Table
Accessor for the surrogate column of the specified type.- Specified by:
getSurrogateColumn
in interfaceTable
- Parameters:
colType
- The type of surrogate column- Returns:
- The column definition, if it exists for this table
-
getColumnForName
Description copied from interface:Table
Accessor for the column with the supplied name (if present).- Specified by:
getColumnForName
in 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:Table
Method to return the member-column mapping for the specified member.- Specified by:
getMemberColumnMappingForMember
in interfaceTable
- Parameters:
mmd
- Metadata for the member- Returns:
- The member-column mapping
-
getMemberColumnMappingForEmbeddedMember
public MemberColumnMapping getMemberColumnMappingForEmbeddedMember(List<AbstractMemberMetaData> mmds) Description copied from interface:Table
Method to return the member-column mapping for the specified embedded member.- Specified by:
getMemberColumnMappingForEmbeddedMember
in interfaceTable
- Parameters:
mmds
- Metadata for the member(s) to navigate to the required member- Returns:
- The member-column mapping
-
getMemberColumnMappings
- Specified by:
getMemberColumnMappings
in interfaceTable
-
toString
-
debugString
-