Class CompleteClassTable
- java.lang.Object
-
- org.datanucleus.store.schema.table.CompleteClassTable
-
- All Implemented Interfaces:
Table
public class CompleteClassTable extends java.lang.Object implements 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
Fields Modifier and Type Field Description (package private) java.lang.StringcatalogName(package private) AbstractClassMetaDatacmd(package private) java.util.Map<java.lang.String,Column>columnByNameMap of DatastoreColumn, keyed by the column identifier.(package private) java.util.List<Column>columns(package private) ColumndatastoreIdColumn(package private) ColumndiscriminatorColumn(package private) java.lang.Stringidentifier(package private) java.util.Map<java.lang.String,MemberColumnMapping>mappingByEmbeddedMemberMap of member-column mapping, keyed by the navigated path of embedded members.(package private) java.util.Map<java.lang.String,MemberColumnMapping>mappingByMemberMap of member-column mapping, keyed by the metadata for the member.(package private) ColumnmultitenancyColumn(package private) java.lang.StringschemaName(package private) SchemaVerifierschemaVerifier(package private) ColumnsoftDeleteColumn(package private) StoreManagerstoreMgr(package private) ColumnversionColumn
-
Constructor Summary
Constructors Constructor Description CompleteClassTable(StoreManager storeMgr, AbstractClassMetaData cmd, SchemaVerifier verifier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ColumnImpladdColumn(AbstractMemberMetaData mmd, java.lang.String colName)protected ColumnImpladdColumn(AbstractMemberMetaData mmd, java.lang.String colName, ColumnType colType)protected ColumnImpladdEmbeddedColumn(java.lang.String colName, TypeConverter typeConv)java.lang.StringdebugString()java.lang.StringgetCatalogName()AbstractClassMetaDatagetClassMetaData()Accessor for the primary class metadata for this table.ColumngetColumnForName(java.lang.String name)Accessor for the column with the supplied name (if present).ColumngetColumnForPosition(int pos)Accessor for the column at the specified position (numbered from 0 to numcols-1).java.util.List<Column>getColumns()private java.lang.StringgetEmbeddedMemberNavigatedPath(java.util.List<AbstractMemberMetaData> mmds)MemberColumnMappinggetMemberColumnMappingForEmbeddedMember(java.util.List<AbstractMemberMetaData> mmds)Method to return the member-column mapping for the specified embedded member.MemberColumnMappinggetMemberColumnMappingForMember(AbstractMemberMetaData mmd)Method to return the member-column mapping for the specified member.java.util.Set<MemberColumnMapping>getMemberColumnMappings()java.lang.StringgetName()intgetNumberOfColumns()Accessor for number of columns.java.lang.StringgetSchemaName()StoreManagergetStoreManager()ColumngetSurrogateColumn(SurrogateColumnType colType)Accessor for the surrogate column of the specified type.protected TypeConvertergetTypeConverterForMember(AbstractMemberMetaData mmd, ColumnMetaData[] colmds, TypeManager typeMgr)protected voidprocessEmbeddedMember(java.util.List<AbstractMemberMetaData> mmds, AbstractClassMetaData embCmd, ClassLoaderResolver clr, EmbeddedMetaData embmd, boolean ownerNested)Handler for an embedded member.java.lang.StringtoString()
-
-
-
Field Detail
-
storeMgr
StoreManager storeMgr
-
cmd
AbstractClassMetaData cmd
-
catalogName
java.lang.String catalogName
-
schemaName
java.lang.String schemaName
-
identifier
java.lang.String identifier
-
columns
java.util.List<Column> columns
-
versionColumn
Column versionColumn
-
discriminatorColumn
Column discriminatorColumn
-
datastoreIdColumn
Column datastoreIdColumn
-
multitenancyColumn
Column multitenancyColumn
-
softDeleteColumn
Column softDeleteColumn
-
mappingByMember
java.util.Map<java.lang.String,MemberColumnMapping> mappingByMember
Map of member-column mapping, keyed by the metadata for the member.
-
mappingByEmbeddedMember
java.util.Map<java.lang.String,MemberColumnMapping> mappingByEmbeddedMember
Map of member-column mapping, keyed by the navigated path of embedded members.
-
columnByName
java.util.Map<java.lang.String,Column> columnByName
Map of DatastoreColumn, keyed by the column identifier.
-
schemaVerifier
SchemaVerifier schemaVerifier
-
-
Constructor Detail
-
CompleteClassTable
public CompleteClassTable(StoreManager storeMgr, AbstractClassMetaData cmd, SchemaVerifier verifier)
-
-
Method Detail
-
getTypeConverterForMember
protected TypeConverter getTypeConverterForMember(AbstractMemberMetaData mmd, ColumnMetaData[] colmds, TypeManager typeMgr)
-
processEmbeddedMember
protected void processEmbeddedMember(java.util.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
protected ColumnImpl addColumn(AbstractMemberMetaData mmd, java.lang.String colName)
-
addColumn
protected ColumnImpl addColumn(AbstractMemberMetaData mmd, java.lang.String colName, ColumnType colType)
-
addEmbeddedColumn
protected ColumnImpl addEmbeddedColumn(java.lang.String colName, TypeConverter typeConv)
-
getEmbeddedMemberNavigatedPath
private java.lang.String getEmbeddedMemberNavigatedPath(java.util.List<AbstractMemberMetaData> mmds)
-
getClassMetaData
public AbstractClassMetaData getClassMetaData()
Description copied from interface:TableAccessor for the primary class metadata for this table.- Specified by:
getClassMetaDatain interfaceTable- Returns:
- Class metadata
-
getStoreManager
public StoreManager getStoreManager()
- Specified by:
getStoreManagerin interfaceTable
-
getSchemaName
public java.lang.String getSchemaName()
- Specified by:
getSchemaNamein interfaceTable
-
getCatalogName
public java.lang.String getCatalogName()
- Specified by:
getCatalogNamein interfaceTable
-
getNumberOfColumns
public int getNumberOfColumns()
Description copied from interface:TableAccessor for number of columns.- Specified by:
getNumberOfColumnsin interfaceTable- Returns:
- Number of cols
-
getColumns
public java.util.List<Column> getColumns()
- Specified by:
getColumnsin interfaceTable
-
getColumnForPosition
public Column getColumnForPosition(int pos)
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
public Column getSurrogateColumn(SurrogateColumnType colType)
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
public Column getColumnForName(java.lang.String name)
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
public MemberColumnMapping getMemberColumnMappingForMember(AbstractMemberMetaData mmd)
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(java.util.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
public java.util.Set<MemberColumnMapping> getMemberColumnMappings()
- Specified by:
getMemberColumnMappingsin interfaceTable
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
debugString
public java.lang.String debugString()
-
-