public class PredefinedDataType extends AbstractBuildableObject implements DataType
Modifier and Type | Class and Description |
---|---|
static class |
PredefinedDataType.ValueType
The type of value that a use of this data type should have.
|
AbstractDBObject.ChildSupport, AbstractDBObject.ListenerSupport
PCTROWTYPE, PCTTYPE, REF, TYPE
Constructor and Description |
---|
PredefinedDataType() |
PredefinedDataType(int domain,
java.lang.String name)
Use this constructor when the data type is a simple name with no declarable
attributes, e.g.
|
PredefinedDataType(int domain,
java.lang.String name,
java.lang.String definition,
DataTypeAttribute... attributes)
Use this constructor when the datatype is not just a simple name, but has
declarable attributes, e.g.
|
PredefinedDataType(int domain,
java.lang.String name,
java.lang.String definition,
long minSize,
long maxSize,
long defaultSize,
boolean isSizeMandatory,
DataTypeAttribute... attributes)
Use this constructor when the data type has a declarable maximum size,
e.g.
|
PredefinedDataType(java.lang.String name)
Constructs a new simple data type with the given name.
|
Modifier and Type | Method and Description |
---|---|
void |
addAttribute(DataTypeAttribute attribute) |
void |
addAttribute(DataTypeAttribute attribute,
int atIndex) |
DataTypeUsage |
createDefaultUsage()
Returns an DataTypeUsage object for this type.
|
DataTypeUsage |
createUsage(java.util.Map<java.lang.String,java.lang.Object> attributeValues)
Returns an DataTypeUsage object for this type, populated with attributes.
|
DataTypeUsage |
createUsage(java.lang.String usageString)
Returns an DataTypeUsage object for this type, populated with attributes based
on the usageString.
|
DataTypeAttribute |
getDataTypeAttribute(java.lang.String name)
Returns the DataTypeAttribute called name or null if this data type doesn't
define it.
|
DataTypeAttribute[] |
getDataTypeAttributes()
Returns an array of this type's DataTypeAttributes in the order they were
added to this type.
|
java.lang.String |
getDDL(DataTypeUsage dataTypeUsage)
Generates the DDL for this type.
|
java.lang.String |
getDefinition()
Gets the definition string for this data type.
|
protected java.lang.String |
getDefinitionForSearch()
Gets a definition that can be used for search.
|
java.math.BigDecimal |
getMaxValue()
Gets the maximum value a use of this data type can have.
|
java.math.BigDecimal |
getMinValue()
Gets the minimum value a use of this data type can have.
|
java.lang.String |
getSearchDefinition()
Gets the definition string for this data type to be used for search (not
ddl).
|
java.lang.Integer |
getSQLType()
Gets the SQL type that identifies this data type.
|
java.lang.String |
getType()
Returns the type of this object.
|
PredefinedDataType.ValueType |
getValueType()
Gets the value type for this data type.
|
boolean |
hasDataTypeAttribute(java.lang.String name)
Returns true if the DataTypeAttribute name is on this DataType.
|
boolean |
matches(java.lang.String usageString)
Returns
true if the usageString is valid syntax for the DataType,
false otherwise. |
void |
removeAttribute(DataTypeAttribute attribute) |
void |
setDataTypeAttributes(DataTypeAttribute[] attrs)
Sets all the attributes that this data type has.
|
void |
setDefinition(java.lang.String definition)
Sets the definition string for this data type.
|
void |
setMaxValue(java.math.BigDecimal maxValue)
Sets the maximum value a use of this data type can have.
|
void |
setMinValue(java.math.BigDecimal minValue)
Sets the minimum value a use of this data type can have.
|
void |
setSearchDefinition(java.lang.String searchDefinition)
Sets the search definition string for this data type.
|
void |
setSQLType(java.lang.Integer sqlType)
Sets the JDBC SQL type that this data type maps to.
|
void |
setValueType(PredefinedDataType.ValueType valueType)
Sets the value type for this data type.
|
protected static java.lang.String[] |
tokenize(java.lang.String string,
java.lang.String delimiters)
Creates a String[] of tokens extracted from string.
|
void |
validateDefaultValue(java.lang.Object defaultValue,
DataTypeUsage dataTypeUsage,
DBObject dbObject)
Deprecated.
validation is done by the ColumnValidator
|
void |
validateUsage(DataTypeUsage dataTypeUsage,
DBObject dbObject)
Deprecated.
validation is done by the DataTypeUsageValidator
|
checkInit, checkInit, copyToImpl, getOwnedObjectsImpl, getProperties, getReferenceIDsImpl, needsInitialization, processPropertyChange, setID
addObjectListener, addObjectListener, addObjectListener, changeParent, compareToImpl, copyObject, copyTo, copyTo, copyTo, copyTo, equals, equalsImpl, findOwnedObject, findOwnedObject, findOwnedObject, findOwnedObject, findParent, fireObjectUpdated, firePropertyChanged, getChildSupport, getChildSupport, getID, getName, getOwnedObjects, getOwnedObjects, getParent, getProperty, getProperty, getReferenceIDs, hashCode, includeOwnedObject, includesType, includesType, removeObjectListener, removeObjectListener, removeObjectListener, removeOwnedObject, removeThisAsParent, replaceReferenceIDs, setName, setProperties, setProperty, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
addObjectListener, copyTo, copyTo, copyTo, equals, findOwnedObject, findOwnedObject, findOwnedObject, getID, getName, getOwnedObjects, getOwnedObjects, getParent, getProperties, getProperty, getProperty, getReferenceIDs, hashCode, removeObjectListener, removeOwnedObject, replaceReferenceIDs, setID, setName, setProperties, setProperty
public PredefinedDataType()
public PredefinedDataType(java.lang.String name)
name
- the name for the data type.public PredefinedDataType(int domain, java.lang.String name)
domain
- Context of data type definition, e.g. column, variable.
Domains are specific to each database and are defined in their interface.name
- the name of the data typepublic PredefinedDataType(int domain, java.lang.String name, java.lang.String definition, DataTypeAttribute... attributes)
domain
- Context of data type definition, e.g. column, variable.
Domains are specific to each database and are defined in their interface.name
- Lookup and display name of this data typedefinition
- BNF definition of this data typeattributes
- Definitions of this data type's attributespublic PredefinedDataType(int domain, java.lang.String name, java.lang.String definition, long minSize, long maxSize, long defaultSize, boolean isSizeMandatory, DataTypeAttribute... attributes)
domain
- Context of data type definition, e.g. column, variable.
Domains are specific to each database and are defined in their interface.name
- data type namedefinition
- BNF definition of this data typeminSize
- the minimum size of this data typemaxSize
- the maximum size of this data typedefaultSize
- size of data type when size is optional and not
declared, default size for UI when size is mandatory.isSizeMandatory
- TRUE when size has to be declaredattributes
- Definitions of additional attributespublic final java.lang.String getType()
DBObject
public final void addAttribute(DataTypeAttribute attribute)
public final void addAttribute(DataTypeAttribute attribute, int atIndex)
public final void removeAttribute(DataTypeAttribute attribute)
public DataTypeUsage createDefaultUsage()
DataType
createDefaultUsage
in interface DataType
public DataTypeUsage createUsage(java.util.Map<java.lang.String,java.lang.Object> attributeValues)
DataType
createUsage
in interface DataType
attributeValues
- the attributes for the new usage@Deprecated public void validateUsage(DataTypeUsage dataTypeUsage, DBObject dbObject) throws DataTypeValidationException
validateUsage
in interface DataType
DataTypeValidationException
@Deprecated public void validateDefaultValue(java.lang.Object defaultValue, DataTypeUsage dataTypeUsage, DBObject dbObject) throws DefaultValueValidationException
validateDefaultValue
in interface DataType
DefaultValueValidationException
public java.lang.String getDDL(DataTypeUsage dataTypeUsage)
DataType
public final boolean hasDataTypeAttribute(java.lang.String name)
hasDataTypeAttribute
in interface DataType
name
- the name of the attribute to check.public final DataTypeAttribute getDataTypeAttribute(java.lang.String name)
getDataTypeAttribute
in interface DataType
name
- the name of the attribute to findpublic final DataTypeAttribute[] getDataTypeAttributes()
getDataTypeAttributes
in interface DataType
public final void setDataTypeAttributes(DataTypeAttribute[] attrs)
attrs
- the complete attributes for this data type.public java.lang.Integer getSQLType()
DataType
getSQLType
in interface DataType
Types
,
OracleTypes
public void setSQLType(java.lang.Integer sqlType)
sqlType
- the JDBC SQL type for this data type.public PredefinedDataType.ValueType getValueType()
public void setValueType(PredefinedDataType.ValueType valueType)
valueType
- the new value typepublic java.math.BigDecimal getMinValue()
public void setMinValue(java.math.BigDecimal minValue)
minValue
- the min value for this typepublic java.math.BigDecimal getMaxValue()
public void setMaxValue(java.math.BigDecimal maxValue)
maxValue
- the max value for this typepublic java.lang.String getDefinition()
getDefinitionForSearch()
public void setDefinition(java.lang.String definition)
definition
- the definition for this typepublic java.lang.String getSearchDefinition()
getDefinition()
,
getDefinitionForSearch()
public void setSearchDefinition(java.lang.String searchDefinition)
searchDefinition
- the search definition for this typeprotected java.lang.String getDefinitionForSearch()
protected static java.lang.String[] tokenize(java.lang.String string, java.lang.String delimiters)
public boolean matches(java.lang.String usageString)
DataType
true
if the usageString is valid syntax for the DataType,
false
otherwise.
Should be overridden by sub-classes to do the validation.public DataTypeUsage createUsage(java.lang.String usageString)
DataType
DataType.matches(java.lang.String)
.
Should be overridden by sub-classes to return an object of the sub-class type.createUsage
in interface DataType
usageString
- the string to use to create a usage