Class DatabaseTable

    • Field Detail

      • tableQualifier

        protected String tableQualifier
      • qualifiedName

        protected String qualifiedName
      • uniqueConstraints

        protected Map<String,​List<List<String>>> uniqueConstraints
        Contains the user specified unique constraints. JPA 2.0 introduced the name element, therefore, if specified we will use that name to create the constraint. Constraints with no name will be added to the map under the null key and generated with a default name. Therefore, when a name is given the list size should only ever be 1. We will validate. The null key could have multiples however they will have their names defaulted (as we did before).
      • indexes

        protected List<IndexDefinition> indexes
        Store the set of indexes defined through meta-data for the table.
      • useDelimiters

        protected boolean useDelimiters
      • creationSuffix

        protected String creationSuffix
    • Constructor Detail

      • DatabaseTable

        public DatabaseTable()
        Initialize the newly allocated instance of this class. By default their is no qualifier.
      • DatabaseTable

        public DatabaseTable​(String possiblyQualifiedName)
      • DatabaseTable

        public DatabaseTable​(String possiblyQualifiedName,
                             String startDelimiter,
                             String endDelimiter)
      • DatabaseTable

        public DatabaseTable​(String tableName,
                             String qualifier)
      • DatabaseTable

        public DatabaseTable​(String tableName,
                             String qualifier,
                             boolean useDelimiters,
                             String startDelimiter,
                             String endDelimiter)
    • Method Detail

      • addForeignKeyConstraint

        public void addForeignKeyConstraint​(ForeignKeyConstraint foreignKeyConstraint)
      • addIndex

        public void addIndex​(IndexDefinition index)
        Add an index definition to this table.
      • addUniqueConstraints

        public void addUniqueConstraints​(String name,
                                         List<String> columnNames)
        Add the unique constraint for the columns names. Used for DDL generation. For now we just add all the unique constraints as we would have before when we didn't have a name.
      • equals

        public boolean equals​(Object object)
        Two tables are equal if their names and tables are equal, or their names are equal and one does not have a qualifier assigned. This allows an unqualified table to equal the same fully qualified one.
        Overrides:
        equals in class Object
      • equals

        public boolean equals​(DatabaseTable table)
        Two tables are equal if their names and tables are equal, or their names are equal and one does not have a qualifier assigned. This allows an unqualified table to equal the same fully qualified one.
      • getCreationSuffix

        public String getCreationSuffix()
        returns the suffix applied to the CREATE table statement on this field for DDL generation.
      • getIndexes

        public List<IndexDefinition> getIndexes()
        Return a list of index definitions. Used for DDL generation.
      • getName

        public String getName()
        Get method for table name.
      • getQualifiedName

        public String getQualifiedName()
      • getTableQualifier

        public String getTableQualifier()
      • hasUniqueConstraints

        public boolean hasUniqueConstraints()
      • hasForeignKeyConstraints

        public boolean hasForeignKeyConstraints()
      • hashCode

        public int hashCode()
        Return the hashcode of the name, because it is fairly unique.
        Overrides:
        hashCode in class Object
      • hasIndexes

        public boolean hasIndexes()
      • getUniqueConstraints

        public Map<String,​List<List<String>>> getUniqueConstraints()
        Return a list of the unique constraints for this table. Used for DDL generation.
      • hasName

        public boolean hasName()
        Determine whether the receiver has any identification information. Return true if the name or qualifier of the receiver are nonempty.
      • isDecorated

        public boolean isDecorated()
        INTERNAL: Is this decorated / has an AS OF (some past time) clause. Example: SELECT ... FROM EMPLOYEE AS OF TIMESTAMP (exp) t0 ...
      • resetQualifiedName

        protected void resetQualifiedName()
      • setCreationSuffix

        public void setCreationSuffix​(String creationSuffix)
      • setName

        public void setName​(String name)
        Set the table name. Used when aliasing table names.
        Parameters:
        name -
      • setName

        public void setName​(String name,
                            String startDelimiter,
                            String endDelimiter)
        Set the table name. Used when aliasing table names. If the name contains database delimiters, they will be stripped and a flag will be set to have them added when the DatabaseTable is written to SQL
        Parameters:
        name -
      • setPossiblyQualifiedName

        public void setPossiblyQualifiedName​(String possiblyQualifiedName)
        Used to map the project xml. Any time a string name is read from the project xml, we must check if it is fully qualified and split the actual name from the qualifier.
        Parameters:
        possiblyQualifiedName -
      • setPossiblyQualifiedName

        public void setPossiblyQualifiedName​(String possiblyQualifiedName,
                                             String startDelimiter,
                                             String endDelimiter)
      • setTableQualifier

        public void setTableQualifier​(String qualifier)
      • setTableQualifier

        public void setTableQualifier​(String qualifier,
                                      String startDelimiter,
                                      String endDelimiter)
      • setUseDelimiters

        public void setUseDelimiters​(boolean useDelimiters)
      • shouldUseDelimiters

        public boolean shouldUseDelimiters()