Class DBasePlatform

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, CorePlatform<ConversionManager>, Platform

    public class DBasePlatform
    extends DatabasePlatform

    Purpose: Provides DBase specific behavior.

    Responsibilities:

    • Writing Time & Timestamp as strings since they are not supported.
    Since:
    TOPLink/Java 1.0
    See Also:
    Serialized Form
    • Constructor Detail

      • DBasePlatform

        public DBasePlatform()
    • Method Detail

      • buildFieldTypes

        protected java.util.Hashtable buildFieldTypes()
        Description copied from class: DatabasePlatform
        Return the mapping of class types to database types for the schema framework.
        Overrides:
        buildFieldTypes in class DatabasePlatform
      • convertToDatabaseType

        public java.lang.Object convertToDatabaseType​(java.lang.Object value)
        INTERNAL We support more primitive than JDBC does so we must do conversion before printing or binding.
        Overrides:
        convertToDatabaseType in class DatabasePlatform
      • setParameterValueInDatabaseCall

        public void setParameterValueInDatabaseCall​(java.lang.Object parameter,
                                                    java.sql.PreparedStatement statement,
                                                    int index,
                                                    AbstractSession session)
                                             throws java.sql.SQLException
        INTERNAL: DBase does not support Time/Timestamp so we must map to strings.
        Overrides:
        setParameterValueInDatabaseCall in class DatabasePlatform
        Throws:
        java.sql.SQLException
      • setParameterValueInDatabaseCall

        public void setParameterValueInDatabaseCall​(java.lang.Object parameter,
                                                    java.sql.CallableStatement statement,
                                                    java.lang.String name,
                                                    AbstractSession session)
                                             throws java.sql.SQLException
        INTERNAL: DBase does not support Time/Timestamp so we must map to strings.
        Overrides:
        setParameterValueInDatabaseCall in class DatabasePlatform
        Throws:
        java.sql.SQLException
      • getMaxFieldNameSize

        public int getMaxFieldNameSize()
        INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.
        Overrides:
        getMaxFieldNameSize in class DatabasePlatform
      • getSelectForUpdateString

        public java.lang.String getSelectForUpdateString()
        Description copied from class: DatabasePlatform
        Most database support a syntax. although don't actually lock the row. Some require the OF some don't like it.
        Overrides:
        getSelectForUpdateString in class DatabasePlatform
      • maximumNumericValues

        public java.util.Hashtable maximumNumericValues()
        Builds a table of minimum numeric values keyed on java class. This is used for type testing but might also be useful to end users attempting to sanitize values.

        NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale

        Overrides:
        maximumNumericValues in class DatabasePlatform
      • minimumNumericValues

        public java.util.Hashtable minimumNumericValues()
        Builds a table of minimum numeric values keyed on java class. This is used for type testing but might also be useful to end users attempting to sanitize values.

        NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale

        Overrides:
        minimumNumericValues in class DatabasePlatform
      • printFieldNotNullClause

        public void printFieldNotNullClause​(java.io.Writer writer)
        Append the receiver's field 'NOT NULL' constraint clause to a writer.
        Overrides:
        printFieldNotNullClause in class DatabasePlatform
      • shouldUseJDBCOuterJoinSyntax

        public boolean shouldUseJDBCOuterJoinSyntax()
        JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.
        Overrides:
        shouldUseJDBCOuterJoinSyntax in class DatabasePlatform