Class FieldDefinition

java.lang.Object
org.eclipse.persistence.tools.schemaframework.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:
  • Field Details

    • name

      protected String name
    • type

      protected Class type
      Java type class for the field. Particular database type is generated based on platform from this.
    • typeName

      protected String typeName
      Generic database type name for the field, which can be used instead of the Java class 'type'. This is translated to a particular database type based on platform.
    • field

      protected org.eclipse.persistence.internal.helper.DatabaseField field
      DatabaseField stores the field name with case and delimiting information. Used if the field needs to be found in the table metadata, for extending tables. if null, name is used for comparison to determine if this field already exists.
    • typeDefinition

      protected String typeDefinition
      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.
    • size

      protected int size
    • subSize

      protected int subSize
    • shouldAllowNull

      protected boolean shouldAllowNull
    • isIdentity

      protected boolean isIdentity
    • isPrimaryKey

      protected boolean isPrimaryKey
    • isUnique

      protected boolean isUnique
    • additional

      protected String additional
    • constraint

      protected String constraint
    • foreignKeyFieldName

      protected String foreignKeyFieldName
  • Constructor Details

    • 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 Details

    • 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:
      Overrides:
      clone in class Object
    • 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.
    • toString

      public String toString()
      Overrides:
      toString in class Object