Class 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 Detail

      • 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.
    • Method Detail

      • 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 member
        embCmd - Class metadata for the embedded member type
        clr - ClassLoader resolver
        embmd - Any EmbeddedMetaData defining column info
        ownerNested - Whether the owner is nested
      • 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: Table
        Accessor for the primary class metadata for this table.
        Specified by:
        getClassMetaData in interface Table
        Returns:
        Class metadata
      • getSchemaName

        public java.lang.String getSchemaName()
        Specified by:
        getSchemaName in interface Table
      • getCatalogName

        public java.lang.String getCatalogName()
        Specified by:
        getCatalogName in interface Table
      • getName

        public java.lang.String getName()
        Specified by:
        getName in interface Table
      • getNumberOfColumns

        public int getNumberOfColumns()
        Description copied from interface: Table
        Accessor for number of columns.
        Specified by:
        getNumberOfColumns in interface Table
        Returns:
        Number of cols
      • getColumnForPosition

        public Column getColumnForPosition​(int pos)
        Description copied from interface: Table
        Accessor for the column at the specified position (numbered from 0 to numcols-1).
        Specified by:
        getColumnForPosition in interface Table
        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: Table
        Accessor for the surrogate column of the specified type.
        Specified by:
        getSurrogateColumn in interface Table
        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: Table
        Accessor for the column with the supplied name (if present).
        Specified by:
        getColumnForName in interface Table
        Parameters:
        name - name of the column (the identifier)
        Returns:
        The column (or null if none present with that name)
      • getMemberColumnMappingForEmbeddedMember

        public MemberColumnMapping getMemberColumnMappingForEmbeddedMember​(java.util.List<AbstractMemberMetaData> mmds)
        Description copied from interface: Table
        Method to return the member-column mapping for the specified embedded member.
        Specified by:
        getMemberColumnMappingForEmbeddedMember in interface Table
        Parameters:
        mmds - Metadata for the member(s) to navigate to the required member
        Returns:
        The member-column mapping
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • debugString

        public java.lang.String debugString()