Class DatabaseObjectDefinition

    • Constructor Detail

      • DatabaseObjectDefinition

        public DatabaseObjectDefinition()
    • Method Detail

      • getFieldTypeDefinition

        protected static final FieldTypeDefinition getFieldTypeDefinition​(AbstractSession session,
                                                                          Class type,
                                                                          String name)
        INTERNAL: Retrieve a database platform specific definition from session for existing type instance or build a new one when type is null.
        Parameters:
        session - Session to search for already existing instances.
        type - Field type class.
        name - Filed type name.
        Returns:
        Database platform specific definition instance.
        Throws:
        ValidationException - when provided type is not valid database type.
      • getFieldTypeDefinition

        protected static final FieldTypeDefinition getFieldTypeDefinition​(DatabasePlatform platform,
                                                                          Class type,
                                                                          String name)
        INTERNAL: Retrieve database platform specific field definition from database specific platform handler for existing type or build a new one when type is null and type for type name could not be found.
        Parameters:
        platform - Specific database platform handler.
        type - Field type (will be processed first when available).
        name - Field type name (will be processed as backup option when type class is not available).
        Throws:
        ValidationException - when provided type is not valid database type.
      • buildVPDCreationPolicyWriter

        public Writer buildVPDCreationPolicyWriter​(AbstractSession session,
                                                   Writer writer)
        INTERNAL: Sub classes should override.
      • buildVPDCreationFunctionWriter

        public Writer buildVPDCreationFunctionWriter​(AbstractSession session,
                                                     Writer writer)
        INTERNAL: Sub classes should override.
      • buildVPDDeletionWriter

        public Writer buildVPDDeletionWriter​(AbstractSession session,
                                             Writer writer)
        INTERNAL: Sub classes should override.
      • createObject

        public void createObject​(AbstractSession session,
                                 Writer schemaWriter)
                          throws EclipseLinkException
        INTERNAL: Either drop from the database directly or write the statement to a file. Database objects are root level entities such as tables, views, procs, sequences...
        Throws:
        EclipseLinkException
      • shouldCreateDatabaseSchema

        public boolean shouldCreateDatabaseSchema​(Set<String> createdDatabaseSchemas)
        INTERNAL: Subclasses who care should override this method, e.g. TableDefinition.
      • shouldCreateVPDCalls

        public boolean shouldCreateVPDCalls​(AbstractSession session)
        INTERNAL: Subclasses who care should override this method.
      • getDatabaseSchema

        public String getDatabaseSchema()
        PUBLIC: Return the database schema associated with this database object.
        See Also:
        TableDefinition
      • getFullName

        public String getFullName()
        INTERNAL: Most major databases support a creator name scope. This means whenever the database object is referenced, it must be qualified.
      • getName

        public String getName()
        PUBLIC: Return the name of the object. i.e. the table name or the sequence name.
      • getQualifier

        public String getQualifier()
        PUBLIC: Most major databases support a creator name scope. This means whenever the database object is referenced, it must be qualified.
      • hasDatabaseSchema

        protected boolean hasDatabaseSchema()
        INTERNAL: Return true is this database object definition has a schema definition.
      • postCreateObject

        public void postCreateObject​(AbstractSession session,
                                     Writer createSchemaWriter,
                                     boolean createSQLFiles)
        Execute any statements required after the creation of the object
        Parameters:
        session -
        createSchemaWriter -
      • preDropObject

        public void preDropObject​(AbstractSession session,
                                  Writer dropSchemaWriter,
                                  boolean createSQLFiles)
        Execute any statements required before the deletion of the object
        Parameters:
        session -
        dropSchemaWriter -
      • setName

        public void setName​(String name)
        PUBLIC: Set the name of the object. i.e. the table name or the sequence name.
      • setQualifier

        public void setQualifier​(String qualifier)
        PUBLIC: Most major databases support a creator name scope. This means whenever the database object is referenced, it must be qualified.