Class FieldDefinition

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class FieldDefinition
    extends Object
    implements Serializable, Cloneable

    Purpose: Define a database field definition for creation within a table. This differs from DatabaseField in that it is used only table creation not a runtime.

    Responsibilities:

    • Store the name, java type, size and sub-size. The sizes are optional and the name of the java class is used for the type.
    See Also:
    Serialized Form
    • Constructor Detail

      • FieldDefinition

        public FieldDefinition()
      • FieldDefinition

        public FieldDefinition​(String name,
                               Class type)
      • FieldDefinition

        public FieldDefinition​(String name,
                               Class type,
                               int size)
      • FieldDefinition

        public FieldDefinition​(String name,
                               Class type,
                               int size,
                               int subSize)
      • FieldDefinition

        public FieldDefinition​(String name,
                               String typeName)
    • Method Detail

      • appendDBString

        public void appendDBString​(Writer writer,
                                   org.eclipse.persistence.internal.sessions.AbstractSession session,
                                   TableDefinition table)
                            throws ValidationException
        INTERNAL: Append the database field definition string to the table creation statement.
        Parameters:
        writer - Target writer where to write field definition string.
        session - Current session context.
        table - Database table being processed.
        Throws:
        ValidationException - When invalid or inconsistent data were found.
      • appendTypeString

        public void appendTypeString​(Writer writer,
                                     org.eclipse.persistence.internal.sessions.AbstractSession session)
                              throws ValidationException
        INTERNAL: Append the database field definition string to the type creation statement. Types do not support constraints.
        Parameters:
        writer - Target writer where to write field definition string.
        session - Current session context.
        Throws:
        ValidationException - When invalid or inconsistent data were found.
      • clone

        public Object clone()
        PUBLIC:
      • getAdditional

        public String getAdditional()
        PUBLIC: Return any additional information about this field to be given when the table is created.
      • getConstraint

        public String getConstraint()
        PUBLIC: Return any constraint of this field. i.e. "BETWEEN 0 AND 1000000".
      • getForeignKeyFieldName

        public String getForeignKeyFieldName()
      • getName

        public String getName()
        PUBLIC: Return the name of the field.
      • getDatabaseField

        public org.eclipse.persistence.internal.helper.DatabaseField getDatabaseField()
        INTERNAL: Return the databasefield.
      • getSize

        public int getSize()
        PUBLIC: Return the size of the field, this is only required for some field types.
      • getSubSize

        public int getSubSize()
        PUBLIC: Return the sub-size of the field. This is used as the decimal precision for numeric values only.
      • getType

        public Class getType()
        PUBLIC: Return the type of the field. This should be set to a java class, such as String.class, Integer.class or Date.class.
      • getTypeName

        public String getTypeName()
        PUBLIC: Return the type name of the field. This is the generic database type name, which can be used instead of the Java class 'type'. This is translated to a particular database type based on platform.
      • getTypeDefinition

        public String getTypeDefinition()
        PUBLIC: Return the type definition of the field. This is database-specific complete type definition like "VARCHAR2(50) UNIQUE NOT NULL". If this is given, other additional type constraint fields(size, unique, null) are meaningless.
      • isIdentity

        public boolean isIdentity()
        PUBLIC: Answer whether the receiver is an identity field. Identity fields are Sybase specific, they insure that on insert a unique sequential value is stored in the row.
      • isPrimaryKey

        public boolean isPrimaryKey()
        PUBLIC: Answer whether the receiver is a primary key. If the table has a multipart primary key this should be set in each field.
      • isUnique

        public boolean isUnique()
        PUBLIC: Answer whether the receiver is a unique constraint field.
      • setAdditional

        public void setAdditional​(String string)
        PUBLIC: Set any additional information about this field to be given when the table is created.
      • setConstraint

        public void setConstraint​(String string)
        PUBLIC: Set any constraint of this field. i.e. "BETWEEN 0 AND 1000000".
      • setForeignKeyFieldName

        public void setForeignKeyFieldName​(String foreignKeyFieldName)
      • setIsIdentity

        public void setIsIdentity​(boolean value)
        PUBLIC: Set whether the receiver is an identity field. Identity fields are Sybase specific, they insure that on insert a unique sequential value is stored in the row.
      • setIsPrimaryKey

        public void setIsPrimaryKey​(boolean value)
        PUBLIC: Set whether the receiver is a primary key. If the table has a multipart primary key this should be set in each field.
      • setName

        public void setName​(String name)
        PUBLIC: Set the name of the field.
      • setDatabaseField

        public void setDatabaseField​(org.eclipse.persistence.internal.helper.DatabaseField field)
        INTERNAL: Set the DatabaseField that is associated to this FieldDefinition object. The databaesField is used when extending tables to see if this field already exists.
      • setShouldAllowNull

        public void setShouldAllowNull​(boolean value)
        PUBLIC: Set whether the receiver should allow null values.
      • setSize

        public void setSize​(int size)
        PUBLIC: Set the size of the field, this is only required for some field types.
      • setSubSize

        public void setSubSize​(int subSize)
        PUBLIC: Set the sub-size of the field. This is used as the decimal precision for numeric values only.
      • setType

        public void setType​(Class type)
        PUBLIC: Set the type of the field. This should be set to a java class, such as String.class, Integer.class or Date.class.
      • setTypeName

        public void setTypeName​(String typeName)
        PUBLIC: Set the type name of the field. This is the generic database type name, which can be used instead of the Java class 'type'. This is translated to a particular database type based on platform.
      • setTypeDefinition

        public void setTypeDefinition​(String typeDefinition)
        PUBLIC: Set the type definition of the field. This is database-specific complete type definition like "VARCHAR2(50) UNIQUE NOT NULL". If this is given, other additional type constraint fields(size, unique, null) are meaningless.
      • setUnique

        public void setUnique​(boolean value)
        PUBLIC: Set whether the receiver is a unique constraint field.
      • shouldAllowNull

        public boolean shouldAllowNull()
        PUBLIC: Return whether the receiver should allow null values.