public class DataTypeHelper
extends java.lang.Object
Constructor and Description |
---|
DataTypeHelper() |
Modifier and Type | Method and Description |
---|---|
static boolean |
canGetTypeStringFromID(DBObjectID id) |
static DBObjectID |
createReferenceIDForTypeString(DBObjectProvider provider,
Schema defaultSchema,
java.lang.String typeString)
Parses the given type string and turns it into a ReferenceID with
a type of DataType.TYPE.
|
static DBObjectID |
findIDForTypeString(DBObjectProvider provider,
Schema defaultSchema,
java.lang.String typeString)
From a String representing a datatype of some sort, find an ID
for that type in the given provider, or return null.
|
static DBObjectID |
findOrCreateIDForTypeString(DBObjectProvider provider,
Schema defaultSchema,
java.lang.String typeString)
From a String representing a datatype of some sort, find or create an ID
for that type in the given provider.
|
static java.lang.Object |
getAttributeValue(java.lang.Object value,
DataType dataType,
java.lang.String attributeName)
Returns an attribute value as an object of the type of the attribute.
|
static DataType |
getDataType(DataTypeUsage usage)
Gets the DataType that the given DataTypeUsage is "using".
|
static DataType |
getDataType(DataTypeUsage usage,
boolean createUnknownTypeIfMissing)
Gets the DataType that the given DataTypeUsage is "using".
|
static PlSqlReference |
getDataTypeRefForString(DBObjectProvider provider,
Schema defaultSchema,
java.lang.String usageString) |
static DataTypeUsage |
getDataTypeUsage(DBObjectProvider provider,
Schema defaultSchema,
java.lang.String typeName,
int size,
int precision,
int scale)
Gets a DataTypeUsage that matches the given data returned from the JDBC
metadata for a Column.
|
static DataTypeUsage |
getDataTypeUsageForString(DBObjectProvider provider,
Schema defaultSchema,
java.lang.String usageString)
|
static DataTypeUsage |
getDataTypeUsageForString(DBObjectProvider provider,
Schema defaultSchema,
java.lang.String usageString,
boolean strict)
Returns a
DataTypeUsage for the given string. |
static java.lang.String |
getDDL(DataTypeUsage dtu)
Deprecated.
replaced by
getDDL(DataTypeUsage,DBObjectProvider) |
static java.lang.String |
getDDL(DataTypeUsage dtu,
DBObjectProvider pro)
Gets the DDL for the given DataTypeUsage.
|
static java.lang.Long |
getLongAttributeValue(DataTypeUsage usage,
java.lang.String name)
Returns the value of the given named attribute from the given DataTypeUsage
as a Long.
|
static java.lang.String |
getNameFromLabel(int resourceLabelID)
Deprecated.
|
static java.lang.String |
getNameFromLabel(java.lang.String resourceLabel)
Deprecated.
|
static java.lang.String |
getStringAttributeDefaultValue(DataTypeUsage usage,
java.lang.String attributeName)
Returns the default value of the given named attribute from the given
DataTypeUsage as a String.
|
static java.lang.String |
getStringAttributeValue(DataTypeUsage usage,
java.lang.String name)
Returns the value of the given named attribute from the given DataTypeUsage
as a String.
|
static java.lang.String |
getTypeDDL(DataTypeUsage dataTypeUsage,
java.lang.String typeString)
Gets the DDL for a DataTypeUsage that is using a Type.
|
static java.lang.String |
getTypeStringFromID(DBObjectID typeID,
Schema defaultSchema)
Deprecated.
|
static java.lang.String |
getTypeStringFromID(DBObjectID typeID,
Schema defaultSchema,
DBObjectProvider pro)
Gets a fully qualified String representation from the ID of a datatype,
omitting the schema name if it is the same as the default schema.
|
static java.lang.String |
getTypeStringFromRef(PlSqlReference ref,
Schema defaultSchema)
Deprecated.
|
static java.lang.String |
getTypeStringFromRef(PlSqlReference ref,
Schema defaultSchema,
DBObjectProvider pro)
Return a fully qualified String representation of the type with the
given ID, omitting the schema name if it is the same as the default
schema
|
static java.lang.String |
getTypeStringFromUsage(DataTypeUsage typeUsage,
Schema defaultSchema,
DBObjectProvider pro)
Gets a fully qualified String representation for the datatype that is
used by the given DataTypusage.
|
static PredefinedDataType.ValueType |
getValueType(DataType dataType)
If the given data type is a predefined data type or a synonym to a
predefined data type this will return its ValueType.
|
static boolean |
isNumericType(DataType dataType)
Tests whether the given data type is a simple data type of numeric
value type (or a synonym for a data type with numeric value type).
|
static boolean |
isTableType(DataType type)
Tests whether the given DataType is a Type that is a table type.
|
static boolean |
isTypeOf(DataType dataType,
java.lang.Class<? extends DataType> dataTypeClz)
Tests whether the given data type is an instanceof of the given class,
or if the data type is a synonym whether the base type is an instanceof
that class.
|
static boolean |
isXMLType(DataType type)
Deprecated.
Oracle specific API replaced by
XMLTypeColumnProperties.isXMLType(oracle.javatools.db.datatypes.DataType) |
static DBObject |
resolveDataTypeReferenceID(ReferenceID id)
If a ReferenceID has a type of DataType.TYPE then it must have been
created by
createReferenceIDForTypeString(oracle.javatools.db.DBObjectProvider, oracle.javatools.db.Schema, java.lang.String) because DataType
is not a valid SystemObject type. |
static java.lang.Long |
toLong(java.lang.Object usageValue)
Returns usageValue as a Long, or null if usageValue is null or usageValue
can't be converted to a number.
|
static java.lang.Long |
toLongOrError(java.lang.Object usageValue)
Returns usageValue as a Long, or null if usageValue is null or usageValue
can't be converted to a number.
|
static java.lang.String |
toString(java.lang.Object usageValue)
Returns usageValue as a String, or null if usageValue is null.
|
static <D extends DataType> |
unwrapDataType(DataType dataType,
java.lang.Class<D> dataTypeClz)
Gets a data type of the given class from the given data type.
|
public static DataType getDataType(DataTypeUsage usage) throws DBException
usage
- the usage to unwrapDBException
- if the usage's DBObjectID fails to resolve.public static DataType getDataType(DataTypeUsage usage, boolean createUnknownTypeIfMissing) throws DBException
usage
- the usage to unwrapcreateUnknownTypeIfMissing
- if true, a DataType will be created
to represent the usage details if possiblecreateUnknownTypeIfMissing
is false
.DBException
- if the usage's DBObjectID fails to resolve.public static DBObject resolveDataTypeReferenceID(ReferenceID id) throws DBException
createReferenceIDForTypeString(oracle.javatools.db.DBObjectProvider, oracle.javatools.db.Schema, java.lang.String)
because DataType
is not a valid SystemObject type. This method takes the information
from such a ReferenceID and attempts to resolve it to return a Type
or Synonym.id
- the id referencing a datatype to resolve.DBException
- if the type information is incomplete or there
is an error querying the underlying DBObjectProvider.public static java.lang.Long getLongAttributeValue(DataTypeUsage usage, java.lang.String name)
usage
- the usage to get the attribute value fromname
- the name of the long attribute to get the value forpublic static java.lang.String getStringAttributeValue(DataTypeUsage usage, java.lang.String name)
usage
- the usage to get the attribute value fromname
- the name of the String attribute to get the value forpublic static java.lang.String getStringAttributeDefaultValue(DataTypeUsage usage, java.lang.String attributeName)
usage
- the usage to get the default attribute value fromattributeName
- the name of the String attribute to get the
default value forpublic static java.lang.Long toLong(java.lang.Object usageValue)
usageValue
- the attribute value from a DataTypeUsage for a
long attribute.public static java.lang.Long toLongOrError(java.lang.Object usageValue) throws java.lang.NumberFormatException
usageValue
- the attribute value from a DataTypeUsage for a
long attribute.java.lang.NumberFormatException
- if the usage value is not convertible to
a Longpublic static java.lang.String toString(java.lang.Object usageValue)
usageValue
- the attribute value from a DataTypeUsage for a
String attribute.@Deprecated public static java.lang.String getNameFromLabel(int resourceLabelID)
@Deprecated public static java.lang.String getNameFromLabel(java.lang.String resourceLabel)
DataTypeAttribute.getNLSLabel()
.public static java.lang.Object getAttributeValue(java.lang.Object value, DataType dataType, java.lang.String attributeName)
value
- value to be converteddataType
- data type of valueattributeName
- name of the attribute@Deprecated public static java.lang.String getDDL(DataTypeUsage dtu)
getDDL(DataTypeUsage,DBObjectProvider)
public static java.lang.String getDDL(DataTypeUsage dtu, DBObjectProvider pro)
dtu
- the datatype usagepro
- the containing providerpublic static boolean canGetTypeStringFromID(DBObjectID id)
@Deprecated public static java.lang.String getTypeStringFromID(DBObjectID typeID, Schema defaultSchema)
getTypeStringFromID(DBObjectID,Schema,DBObjectProvider)
public static java.lang.String getTypeStringFromUsage(DataTypeUsage typeUsage, Schema defaultSchema, DBObjectProvider pro)
For a simple datatype this will just return the type name.
typeUsage
- the usage of a datatype to get a fully qualified name
fordefaultSchema
- the default schema that can be omitted from the
qualification for Typespro
- the containing providerpublic static java.lang.String getTypeStringFromID(DBObjectID typeID, Schema defaultSchema, DBObjectProvider pro)
For a simple datatype this will just return the type name.
typeID
- the id to get a fully qualified name fordefaultSchema
- the default schema that can be omitted from the
qualification for Typespro
- the containing providerpublic static java.lang.String getTypeDDL(DataTypeUsage dataTypeUsage, java.lang.String typeString)
dataTypeUsage
- the DataTypeUsage that is using a Type.typeString
- the qualified, external name of the Type being used.@Deprecated public static java.lang.String getTypeStringFromRef(PlSqlReference ref, Schema defaultSchema)
getTypeStringFromRef(PlSqlReference,Schema,DBObjectProvider)
public static java.lang.String getTypeStringFromRef(PlSqlReference ref, Schema defaultSchema, DBObjectProvider pro)
ref
- the pl/sql reference to get a String representation ofdefaultSchema
- the default schema which should never be included
in qualification (can be null)pro
- the containing provider (can be null but no names will be
quoted)public static PlSqlReference getDataTypeRefForString(DBObjectProvider provider, Schema defaultSchema, java.lang.String usageString)
public static DBObjectID findOrCreateIDForTypeString(DBObjectProvider provider, Schema defaultSchema, java.lang.String typeString)
typeString
- provider
- defaultSchema
- public static DBObjectID createReferenceIDForTypeString(DBObjectProvider provider, Schema defaultSchema, java.lang.String typeString)
provider
- the containing providerdefaultSchema
- the default schema for the type resolutiontypeString
- the string (e.g. MYSCHEMA.ARRAY_TYPE)public static DBObjectID findIDForTypeString(DBObjectProvider provider, Schema defaultSchema, java.lang.String typeString)
typeString
- provider
- defaultSchema
- public static DataTypeUsage getDataTypeUsage(DBObjectProvider provider, Schema defaultSchema, java.lang.String typeName, int size, int precision, int scale)
provider
- the DBObjectProvider we're working indefaultSchema
- the current schematypeName
- the name of the data type to look forsize
- the size value for the usage of the typeprecision
- the precision value for the usage of the typescale
- the scale value for the usage of the typepublic static DataTypeUsage getDataTypeUsageForString(DBObjectProvider provider, Schema defaultSchema, java.lang.String usageString)
public static DataTypeUsage getDataTypeUsageForString(DBObjectProvider provider, Schema defaultSchema, java.lang.String usageString, boolean strict)
DataTypeUsage
for the given string. If strict == true
and no underlying DataType can be found, then null is returned.
If strict == false (or is omitted) and an underlying DataType cannot be
found, an ObjectTypeUsage with a ReferenceID for the DataType will be
returned.provider
- defaultSchema
- usageString
- strict
- @Deprecated public static boolean isXMLType(DataType type)
XMLTypeColumnProperties.isXMLType(oracle.javatools.db.datatypes.DataType)
public static boolean isTableType(DataType type)
type
- the type to testpublic static boolean isTypeOf(DataType dataType, java.lang.Class<? extends DataType> dataTypeClz)
dataType
- the data type to testdataTypeClz
- the data type implementation we're looking forpublic static <D extends DataType> D unwrapDataType(DataType dataType, java.lang.Class<D> dataTypeClz)
dataType
- the data type to testdataTypeClz
- the data type implementation we're looking forpublic static PredefinedDataType.ValueType getValueType(DataType dataType)
dataType
- the type to get the value type forpublic static boolean isNumericType(DataType dataType)
dataType
- the data type to testgetValueType(DataType)