org.postgresql.jdbc2
Class TypeInfoCache

java.lang.Object
  extended by org.postgresql.jdbc2.TypeInfoCache
All Implemented Interfaces:
TypeInfo

public class TypeInfoCache
extends Object
implements TypeInfo


Constructor Summary
TypeInfoCache(BaseConnection conn, int unknownLength)
           
 
Method Summary
 void addCoreType(String pgTypeName, Integer oid, Integer sqlType, String javaClass, Integer arrayOid)
           
 void addDataType(String type, Class klass)
           
protected  int convertArrayToBaseOid(int oid)
          Return the oid of the array's base element if it's an array, if not return the provided oid.
 char getArrayDelimiter(int oid)
          Determine the delimiter for the elements of the given array type oid.
 int getDisplaySize(int oid, int typmod)
           
 String getJavaClass(int oid)
           
 int getMaximumPrecision(int oid)
           
 int getPGArrayElement(int oid)
          Look up the oid of an array's base type given the array's type oid.
 int getPGArrayType(String elementTypeName)
          Determine the oid of the given base postgresql type's array type
 Class getPGobject(String type)
           
 String getPGType(int oid)
          Look up the postgresql type name for a given oid.
 int getPGType(String pgTypeName)
          Look up the oid for a given postgresql type name.
 Iterator getPGTypeNamesWithSQLTypes()
           
 int getPrecision(int oid, int typmod)
           
 int getScale(int oid, int typmod)
           
 int getSQLType(int oid)
          Look up the SQL typecode for a given type oid.
 int getSQLType(String pgTypeName)
          Look up the SQL typecode for a given postgresql type name.
 String getTypeForAlias(String alias)
           
 boolean isCaseSensitive(int oid)
           
 boolean isSigned(int oid)
           
 boolean requiresQuoting(int oid)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeInfoCache

public TypeInfoCache(BaseConnection conn,
                     int unknownLength)
Method Detail

addCoreType

public void addCoreType(String pgTypeName,
                        Integer oid,
                        Integer sqlType,
                        String javaClass,
                        Integer arrayOid)
Specified by:
addCoreType in interface TypeInfo

addDataType

public void addDataType(String type,
                        Class klass)
                 throws SQLException
Specified by:
addDataType in interface TypeInfo
Throws:
SQLException

getPGTypeNamesWithSQLTypes

public Iterator getPGTypeNamesWithSQLTypes()
Specified by:
getPGTypeNamesWithSQLTypes in interface TypeInfo

getSQLType

public int getSQLType(int oid)
               throws SQLException
Description copied from interface: TypeInfo
Look up the SQL typecode for a given type oid.

Specified by:
getSQLType in interface TypeInfo
Parameters:
oid - the type's OID
Returns:
the SQL type code (a constant from Types) for the type
Throws:
SQLException

getSQLType

public int getSQLType(String pgTypeName)
               throws SQLException
Description copied from interface: TypeInfo
Look up the SQL typecode for a given postgresql type name.

Specified by:
getSQLType in interface TypeInfo
Parameters:
pgTypeName - the server type name to look up
Returns:
the SQL type code (a constant from Types) for the type
Throws:
SQLException

getPGType

public int getPGType(String pgTypeName)
              throws SQLException
Description copied from interface: TypeInfo
Look up the oid for a given postgresql type name. This is the inverse of TypeInfo.getPGType(int).

Specified by:
getPGType in interface TypeInfo
Parameters:
pgTypeName - the server type name to look up
Returns:
the type's OID, or 0 if unknown
Throws:
SQLException

getPGType

public String getPGType(int oid)
                 throws SQLException
Description copied from interface: TypeInfo
Look up the postgresql type name for a given oid. This is the inverse of TypeInfo.getPGType(String).

Specified by:
getPGType in interface TypeInfo
Parameters:
oid - the type's OID
Returns:
the server type name for that OID or null if unknown
Throws:
SQLException

getPGArrayType

public int getPGArrayType(String elementTypeName)
                   throws SQLException
Description copied from interface: TypeInfo
Determine the oid of the given base postgresql type's array type

Specified by:
getPGArrayType in interface TypeInfo
Parameters:
elementTypeName - the base type's
Returns:
the array type's OID, or 0 if unknown
Throws:
SQLException

convertArrayToBaseOid

protected int convertArrayToBaseOid(int oid)
Return the oid of the array's base element if it's an array, if not return the provided oid. This doesn't do any database lookups, so it's only useful for the originally provided type mappings. This is fine for it's intended uses where we only have intimate knowledge of types that are already known to the driver.


getArrayDelimiter

public char getArrayDelimiter(int oid)
                       throws SQLException
Description copied from interface: TypeInfo
Determine the delimiter for the elements of the given array type oid.

Specified by:
getArrayDelimiter in interface TypeInfo
Parameters:
oid - the array type's OID
Returns:
the base type's array type delimiter
Throws:
SQLException

getPGArrayElement

public int getPGArrayElement(int oid)
                      throws SQLException
Description copied from interface: TypeInfo
Look up the oid of an array's base type given the array's type oid.

Specified by:
getPGArrayElement in interface TypeInfo
Parameters:
oid - the array type's OID
Returns:
the base type's OID, or 0 if unknown
Throws:
SQLException

getPGobject

public Class getPGobject(String type)
Specified by:
getPGobject in interface TypeInfo

getJavaClass

public String getJavaClass(int oid)
                    throws SQLException
Specified by:
getJavaClass in interface TypeInfo
Throws:
SQLException

getTypeForAlias

public String getTypeForAlias(String alias)
Specified by:
getTypeForAlias in interface TypeInfo

getPrecision

public int getPrecision(int oid,
                        int typmod)
Specified by:
getPrecision in interface TypeInfo

getScale

public int getScale(int oid,
                    int typmod)
Specified by:
getScale in interface TypeInfo

isCaseSensitive

public boolean isCaseSensitive(int oid)
Specified by:
isCaseSensitive in interface TypeInfo

isSigned

public boolean isSigned(int oid)
Specified by:
isSigned in interface TypeInfo

getDisplaySize

public int getDisplaySize(int oid,
                          int typmod)
Specified by:
getDisplaySize in interface TypeInfo

getMaximumPrecision

public int getMaximumPrecision(int oid)
Specified by:
getMaximumPrecision in interface TypeInfo

requiresQuoting

public boolean requiresQuoting(int oid)
                        throws SQLException
Specified by:
requiresQuoting in interface TypeInfo
Throws:
SQLException


Copyright © 2013. All Rights Reserved.