Class FieldDefinition

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public class FieldDefinition
    extends java.lang.Object
    implements java.io.Serializable, java.lang.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 Summary

      Constructors 
      Constructor Description
      FieldDefinition()  
      FieldDefinition​(java.lang.String name, java.lang.Class type)  
      FieldDefinition​(java.lang.String name, java.lang.Class type, int size)  
      FieldDefinition​(java.lang.String name, java.lang.Class type, int size, int subSize)  
      FieldDefinition​(java.lang.String name, java.lang.String typeName)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void appendDBString​(java.io.Writer writer, org.eclipse.persistence.internal.sessions.AbstractSession session, TableDefinition table)
      INTERNAL: Append the database field definition string to the table creation statement.
      void appendTypeString​(java.io.Writer writer, org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Append the database field definition string to the type creation statement.
      java.lang.Object clone()
      PUBLIC:
      java.lang.String getAdditional()
      PUBLIC: Return any additional information about this field to be given when the table is created.
      java.lang.String getConstraint()
      PUBLIC: Return any constraint of this field.
      org.eclipse.persistence.internal.helper.DatabaseField getDatabaseField()
      INTERNAL: Return the databasefield.
      java.lang.String getForeignKeyFieldName()  
      java.lang.String getName()
      PUBLIC: Return the name of the field.
      int getSize()
      PUBLIC: Return the size of the field, this is only required for some field types.
      int getSubSize()
      PUBLIC: Return the sub-size of the field.
      java.lang.Class getType()
      PUBLIC: Return the type of the field.
      java.lang.String getTypeDefinition()
      PUBLIC: Return the type definition of the field.
      java.lang.String getTypeName()
      PUBLIC: Return the type name of the field.
      boolean isIdentity()
      PUBLIC: Answer whether the receiver is an identity field.
      boolean isPrimaryKey()
      PUBLIC: Answer whether the receiver is a primary key.
      boolean isUnique()
      PUBLIC: Answer whether the receiver is a unique constraint field.
      void setAdditional​(java.lang.String string)
      PUBLIC: Set any additional information about this field to be given when the table is created.
      void setConstraint​(java.lang.String string)
      PUBLIC: Set any constraint of this field.
      void setDatabaseField​(org.eclipse.persistence.internal.helper.DatabaseField field)
      INTERNAL: Set the DatabaseField that is associated to this FieldDefinition object.
      void setForeignKeyFieldName​(java.lang.String foreignKeyFieldName)  
      void setIsIdentity​(boolean value)
      PUBLIC: Set whether the receiver is an identity field.
      void setIsPrimaryKey​(boolean value)
      PUBLIC: Set whether the receiver is a primary key.
      void setName​(java.lang.String name)
      PUBLIC: Set the name of the field.
      void setShouldAllowNull​(boolean value)
      PUBLIC: Set whether the receiver should allow null values.
      void setSize​(int size)
      PUBLIC: Set the size of the field, this is only required for some field types.
      void setSubSize​(int subSize)
      PUBLIC: Set the sub-size of the field.
      void setType​(java.lang.Class type)
      PUBLIC: Set the type of the field.
      void setTypeDefinition​(java.lang.String typeDefinition)
      PUBLIC: Set the type definition of the field.
      void setTypeName​(java.lang.String typeName)
      PUBLIC: Set the type name of the field.
      void setUnique​(boolean value)
      PUBLIC: Set whether the receiver is a unique constraint field.
      boolean shouldAllowNull()
      PUBLIC: Return whether the receiver should allow null values.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • FieldDefinition

        public FieldDefinition()
      • FieldDefinition

        public FieldDefinition​(java.lang.String name,
                               java.lang.Class type)
      • FieldDefinition

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

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

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

      • appendDBString

        public void appendDBString​(java.io.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​(java.io.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 java.lang.Object clone()
        PUBLIC:
      • getAdditional

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

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

        public java.lang.String getForeignKeyFieldName()
      • getName

        public java.lang.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 java.lang.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 java.lang.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 java.lang.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​(java.lang.String string)
        PUBLIC: Set any additional information about this field to be given when the table is created.
      • setConstraint

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

        public void setForeignKeyFieldName​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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.
      • toString

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