2.17.2: 2011-06-17

net.sf.basedb.core
Enum Type

java.lang.Object
  extended by java.lang.Enum<Type>
      extended by net.sf.basedb.core.Type
All Implemented Interfaces:
Serializable, Comparable<Type>

public enum Type
extends Enum<Type>

This class defines constants for supported value types in BASE.

Version:
2.0
Author:
Samuel, Nicklas
Last modified
$Date: 2010-11-03 15:02:49 +0100 (Wed, 03 Nov 2010) $

Enum Constant Summary
BOOLEAN
          Boolean type.
DATE
          The parameter is a date value.
DOUBLE
          Double type.
FLOAT
          Float type.
INT
          Integer type.
LONG
          Long integer type.
STRING
          String type where maximum length allowed is 255 characters.
TEXT
          Text blob type.
TIMESTAMP
          The parameter is a date+time value.
 
Field Summary
private  boolean canEnumerate
           
private  String displayValue
           
private  boolean isNumerical
           
private  boolean isTemporal
           
private static Map<String,Type> stringMapping
           
private  String stringValue
           
private  String tableName
           
private  TypeWrapper typeWrapper
           
private  int value
           
private  Class<?> valueClass
           
private static Map<Integer,Type> valueMapping
           
 
Method Summary
 boolean canEnumerate()
          If it makes sense to use values of this type as an enumeration to choose from.
 Number convertNumber(Number num)
          Convert a number to the appropriate class.
static Type fromHibernateType(org.hibernate.type.Type hibernateType)
          Try to find a matching Type instance given a Hibernate Type object.
static Type fromValue(int value)
          Get the Type object when you know the integer code.
static Type fromValue(String value)
          Get the Type object when you know the string value.
 int getSQLType()
          Get the type of this parameter as specified by the java.sql.Types class.
 String getStringValue()
          Get the string value representation of this type.
 String getTableName()
          Get the name of the database table, parameter and annotation values of this value type are stored in.
 TypeWrapper getTypeWrapper()
          Get a wrapper for accessing underlying type information from Hibernate.
 int getValue()
          Get the integer value that is used when storing a type in the database.
 Class<?> getValueClass()
          Get the class of objects that can be used as values for this type.
 boolean isCorrectType(Object value)
          Check if the value is an object of the correct type.
 boolean isNumerical()
          If the values of this type are numerical values.
 boolean isTemporal()
          If the values of this type are date/time related.
(package private) abstract  ParameterValueData<?> newParameterValueData()
          Create a new ParameterValueData subclass which is used to store values of this value type in the database.
abstract  Object parseString(String value)
          Parse a string and return a value of the correct type.
 Object parseString(String value, NumberFormat numberFormat)
          Deprecated. Use parseString(String, NumberFormat, boolean) instead
 Object parseString(String value, NumberFormat numberFormat, boolean nullIfException)
          Parse a string and return a value of the correct type using a specific number format for numerical values, optionally ignoring unparsable numbers.
 Object[] parseStrings(String[] values)
          Parse an array of strings and try to convert them to values of the correct object type.
abstract  int sizeOf(Object value)
          Get the size in bytes an object of this type requires when stored in the database.
 String toString()
           
 void validate(List<?> values)
          Check if a list of values contain only objects of the correct type.
 void validate(Object value)
          Check if an object is a value of the correct type.
static Type valueOf(String name)
          Returns the enum constant of this type with the specified name.
static Type[] values()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

INT

public static final Type INT
Integer type.


LONG

public static final Type LONG
Long integer type.


FLOAT

public static final Type FLOAT
Float type.


DOUBLE

public static final Type DOUBLE
Double type.


STRING

public static final Type STRING
String type where maximum length allowed is 255 characters.

See Also:
TEXT

TEXT

public static final Type TEXT
Text blob type.

See Also:
STRING

BOOLEAN

public static final Type BOOLEAN
Boolean type.


DATE

public static final Type DATE
The parameter is a date value.


TIMESTAMP

public static final Type TIMESTAMP
The parameter is a date+time value.

Since:
2.16
Field Detail

valueMapping

private static final Map<Integer,Type> valueMapping

stringMapping

private static final Map<String,Type> stringMapping

typeWrapper

private final TypeWrapper typeWrapper

value

private final int value

valueClass

private final Class<?> valueClass

tableName

private final String tableName

stringValue

private final String stringValue

displayValue

private final String displayValue

canEnumerate

private final boolean canEnumerate

isNumerical

private final boolean isNumerical

isTemporal

private final boolean isTemporal
Method Detail

values

public static Type[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (Type c : Type.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static Type valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null

toString

public String toString()
Overrides:
toString in class Enum<Type>

getTypeWrapper

public TypeWrapper getTypeWrapper()
Get a wrapper for accessing underlying type information from Hibernate.

Since:
2.16

getValue

public int getValue()
Get the integer value that is used when storing a type in the database.

Returns:
an int.

getValueClass

public Class<?> getValueClass()
Get the class of objects that can be used as values for this type.

Returns:
a Class
See Also:
isCorrectType(Object)

getStringValue

public String getStringValue()
Get the string value representation of this type.

Returns:
a java.lang.String

getSQLType

public int getSQLType()
Get the type of this parameter as specified by the java.sql.Types class.

Returns:
The type-code of the parameter

getTableName

public String getTableName()
Get the name of the database table, parameter and annotation values of this value type are stored in.

Since:
2.9

canEnumerate

public boolean canEnumerate()
If it makes sense to use values of this type as an enumeration to choose from. For example, the BOOLEAN and TEXT type can't be enumerated.

Returns:
TRUE if it does, FALSE otherwise.

isNumerical

public boolean isNumerical()
If the values of this type are numerical values.

Returns:
TRUE if the values are numerical, FALSE otherwise

isTemporal

public boolean isTemporal()
If the values of this type are date/time related.

Returns:
TRUE if the values are temporal, FALSE otherwise
Since:
2.16

validate

public void validate(Object value)
              throws InvalidDataException
Check if an object is a value of the correct type. Null is allowed.

Parameters:
value - Value object to be checked.
Throws:
InvalidDataException - If the value isn't of the correct type

validate

public void validate(List<?> values)
              throws InvalidDataException
Check if a list of values contain only objects of the correct type.

Parameters:
values - List of objects to be checked.
Throws:
InvalidDataException - If the list contains one or more nulls or values of incorrect object type

isCorrectType

public boolean isCorrectType(Object value)
Check if the value is an object of the correct type.

Parameters:
value - Value object to be checked.
Returns:
TRUE if it is of correct type, FALSE otherwise.

newParameterValueData

abstract ParameterValueData<?> newParameterValueData()
Create a new ParameterValueData subclass which is used to store values of this value type in the database.


sizeOf

public abstract int sizeOf(Object value)
Get the size in bytes an object of this type requires when stored in the database. If the value is null, 0 is returned, otherwise the actual value is only used if it affects the size, ie. it is a string.

Parameters:
value - The value to get the size of
Returns:
an integer

convertNumber

public Number convertNumber(Number num)
Convert a number to the appropriate class. The default implementation returns null. Each numeric type overrides this method to create a number of the correct type.

Parameters:
num - The number to convert.
Returns:
Null if this method not have been overridden.
Since:
2.2

parseString

public abstract Object parseString(String value)
                            throws InvalidDataException
Parse a string and return a value of the correct type.

Parameters:
value - The string to get the type object from.
Returns:
a java.lang.Object or null if the parameter is null.
Throws:
InvalidDataException - If the argument is corrupt.

parseString

public Object parseString(String value,
                          NumberFormat numberFormat)
Deprecated. Use parseString(String, NumberFormat, boolean) instead

Parse a string and return a value of the correct type using a specific number format for numerical values.

Parameters:
value - The string value to parse
numberFormat - The number format, or null to use parseString(String)
Throws:
NumberFormatException - If the type is numerical and the string can't be parsed as a number
Since:
2.2

parseString

public Object parseString(String value,
                          NumberFormat numberFormat,
                          boolean nullIfException)
Parse a string and return a value of the correct type using a specific number format for numerical values, optionally ignoring unparsable numbers.

Parameters:
value - The string value to parse
numberFormat - The number format, or null to use parseString(String)
nullIfException - TRUE to return null for unparsable numeric values, or FALSE to throw an exception
Returns:
a java.lang.Object, or null.
Throws:
NumberFormatException - If the type is numerical and the string can't be parsed as a number and the nullIfException parameter is false
Since:
2.4

parseStrings

public Object[] parseStrings(String[] values)
                      throws InvalidDataException
Parse an array of strings and try to convert them to values of the correct object type.

Parameters:
values - An array of values to parse through.
Returns:
An array of objects, or null of the array is null
Throws:
InvalidDataException - If at least one of the strings could not be parsed to the correct type

fromValue

public static Type fromValue(int value)
Get the Type object when you know the integer code.

Parameters:
value - The integer code to get the Type object for.
Returns:
a net.sf.basedb.core.Type object

fromValue

public static Type fromValue(String value)
Get the Type object when you know the string value.

Parameters:
value - The string value to get the Type object for.
Returns:
a net.sf.basedb.core.Type object.

fromHibernateType

public static Type fromHibernateType(org.hibernate.type.Type hibernateType)
Try to find a matching Type instance given a Hibernate Type object.

Parameters:
hibernateType - The Hibernate type
Returns:
A Type instance or null if not found
Since:
2.15

2.17.2: 2011-06-17