org.codehaus.modello.generator.database.type

Class Types

public class Types extends Object

Manages the set of types supported by a database provider, and the mappings from standard JDBC types to the provider types.

Version: 1.1 2003/02/05 08:08:37

Author: Tim Anderson

Constructor Summary
Types()
Construct a new empty Types
Method Summary
voidaddAutoIncrementMapping(Mapping mapping)
Add an auto-increment mapping.
voidaddMapping(Mapping mapping)
Add a mapping.
voidaddType(Type type)
Add a type.
TypeMappinggetAutoIncrementMapping(String name, long size)
Returns the closest auto-increment type mapping matching the requested type name and size
ListgetAutoIncrementMappings()
Returns all auto-increment mappings
ListgetMappings()
Returns all mappings that the database supports
StringgetSQLType(Column column)
Helper to return the SQL type for a column
TypegetType(String sqlName)
Returns a type, based on its name
TypeMappinggetTypeMapping(String name, long size)
Returns the first type matching the requested type name and size
protected TypeMappinggetTypeMapping(List mappings, long size)
Returns the closest type mapping for a requested size, from a list of Mappings.
ListgetTypes()
Returns all types
TypeMappingpromote(String name, long size)
Promote a type to that supported by the database provider.
TypeMappingpromote(String fromName, String toName, long size)
Promote a type to another type
protected TypeMappingpromote(String name, long size, String[] types)
Promote a type to that supported by the database provider.
protected TypeMappingpromote(String name, long size, String[] types, String defaultName)
Promote a type to that supported by the database provider.

Constructor Detail

Types

public Types()
Construct a new empty Types

Method Detail

addAutoIncrementMapping

public void addAutoIncrementMapping(Mapping mapping)
Add an auto-increment mapping. Mappings are identified by their Mapping. Multiple mappings can be added with the same name.

Throws: IllegalArgumentException if no there is no corresponding Type registered for Mapping

addMapping

public void addMapping(Mapping mapping)
Add a mapping. Mappings are identified by their Mapping. Multiple mappings can be added with the same name.

Throws: IllegalArgumentException if no there is no corresponding Type registered for Mapping

addType

public void addType(Type type)
Add a type. Types are uniquely identified by their Type - if a type already exists with the same name, it will be replaced

getAutoIncrementMapping

public TypeMapping getAutoIncrementMapping(String name, long size)
Returns the closest auto-increment type mapping matching the requested type name and size

Parameters: name the JDBC type name size the requested size. A size <= 0 indicates that the type has no size

Returns: the closest matching mapping, or null if none exists

getAutoIncrementMappings

public List getAutoIncrementMappings()
Returns all auto-increment mappings

getMappings

public List getMappings()
Returns all mappings that the database supports

getSQLType

public String getSQLType(Column column)
Helper to return the SQL type for a column

Parameters: column the column

Returns: the SQL type of column

getType

public Type getType(String sqlName)
Returns a type, based on its name

Parameters: sqlName the name of the type

Returns: the type corresponding to sqlName, or null if no such type exists

getTypeMapping

public TypeMapping getTypeMapping(String name, long size)
Returns the first type matching the requested type name and size

Parameters: name the JDBC type name size the requested size. A size of 0 indicates that the type has no size

Returns: the closest matching type, or null if none exists

getTypeMapping

protected TypeMapping getTypeMapping(List mappings, long size)
Returns the closest type mapping for a requested size, from a list of Mappings. Note that the returned mapping may specify a size less than that requested.

Parameters: mappings a list of Mappings size the requested size

Returns: the closest type mapping

getTypes

public List getTypes()
Returns all types

promote

public TypeMapping promote(String name, long size)
Promote a type to that supported by the database provider. Note that this only promotes types when the type semantics remain unchanged - it will not promote a CHAR to a VARCHAR for example as some providers do not support indexes on VARCHAR columns. If this is the desired behaviour, add a mapping.

Parameters: name the JDBC type name size the requested size

Returns: the promoted type mapping, or null if the type can't be promoted

promote

public TypeMapping promote(String fromName, String toName, long size)
Promote a type to another type

Parameters: fromName the JDBC type name to promote toName the JDBC type name to promote to size the requested size

Returns: the promoted type mapping, or null if the promotion is invalid, or isn't supported by the database provider

promote

protected TypeMapping promote(String name, long size, String[] types)
Promote a type to that supported by the database provider.

Parameters: name the JDBC type name size the requested size types the set of JDBC types that name may be promoted to

Returns: the promoted type mapping, or null if the type can't be promoted

promote

protected TypeMapping promote(String name, long size, String[] types, String defaultName)
Promote a type to that supported by the database provider.

Parameters: name the JDBC type name size the requested size types the set of JDBC types that name may be promoted to defaultName the default type name to promote to. If non-null, this is used in preference to those listed by types

Returns: the promoted type mapping, or null if the type can't be promoted

Copyright © 2001-2008 Codehaus. All Rights Reserved.