org.hibernate.type

Class TypeFactory


public final class TypeFactory
extends java.lang.Object

Used internally to obtain instances of Type. Applications should use static methods and constants on org.hibernate.Hibernate.
Author:
Gavin King
See Also:
Hibernate

Method Summary

static CollectionType
array(String role, String propertyRef, boolean embedded, Class elementClass)
static Object[]
assemble(Serializable[] row, Type[] types, SessionImplementor session, Object owner)
Apply the Type.assemble(Serializable,SessionImplementor,Object) operation across a series of values.
static CollectionType
bag(String role, String propertyRef, boolean embedded)
static Type
basic(String name)
Given the name of a Hibernate basic type, return an instance of org.hibernate.type.Type.
static void
beforeAssemble(Serializable[] row, Type[] types, SessionImplementor session)
Apply the Type.beforeAssemble(Serializable,SessionImplementor) operation across a series of values.
static CollectionType
customCollection(String typeName, Properties typeParameters, String role, String propertyRef, boolean embedded)
static CollectionType
customCollection(String typeName, String role, String propertyRef, boolean embedded)
Deprecated. Use customCollection(String, java.util.Properties, String, String, boolean) instead
static void
deepCopy(Object[] values, Type[] types, boolean[] copy, Object[] target, SessionImplementor session)
Deep copy a series of values from one array to another...
static Serializable[]
disassemble(Object[] row, Type[] types, boolean[] nonCacheable, SessionImplementor session, Object owner)
Apply the Type.disassemble(Object,SessionImplementor,Object) operation across a series of values.
static int[]
findDirty(StandardProperty[] properties, Object[] currentState, Object[] previousState, boolean[][] includeColumns, boolean anyUninitializedProperties, SessionImplementor session)
Determine if any of the given field values are dirty, returning an array containing indices of the dirty fields.
static int[]
findModified(StandardProperty[] properties, Object[] currentState, Object[] previousState, boolean[][] includeColumns, boolean anyUninitializedProperties, SessionImplementor session)
Determine if any of the given field values are modified, returning an array containing indices of the modified fields.
static Type
heuristicType(String typeName)
Uses heuristics to deduce a Hibernate type given a string naming the type or Java class.
static Type
heuristicType(String typeName, Properties parameters)
Uses heuristics to deduce a Hibernate type given a string naming the type or Java class.
static CollectionType
idbag(String role, String propertyRef, boolean embedded)
static void
injectParameters(Object type, Properties parameters)
static CollectionType
list(String role, String propertyRef, boolean embedded)
static EntityType
manyToOne(String persistentClass)
A many-to-one association type for the given class
static EntityType
manyToOne(String persistentClass, String uniqueKeyPropertyName, boolean lazy, boolean unwrapProxy, boolean isEmbeddedInXML, boolean ignoreNotFound)
A many-to-one association type for the given class
static EntityType
manyToOne(String persistentClass, boolean lazy)
A many-to-one association type for the given class
static CollectionType
map(String role, String propertyRef, boolean embedded)
static EntityType
oneToOne(String persistentClass, ForeignKeyDirection foreignKeyType, String uniqueKeyPropertyName, boolean lazy, boolean unwrapProxy, boolean isEmbeddedInXML, String entityName, String propertyName)
A one-to-one association type for the given class
static CollectionType
orderedMap(String role, String propertyRef, boolean embedded)
static CollectionType
orderedSet(String role, String propertyRef, boolean embedded)
static Object[]
replace(Object[] original, Object[] target, Type[] types, SessionImplementor session, Object owner, Map copyCache)
Apply the Type.replace operation across a series of values.
static Object[]
replace(Object[] original, Object[] target, Type[] types, SessionImplementor session, Object owner, Map copyCache, ForeignKeyDirection foreignKeyDirection)
Apply the Type.replace operation across a series of values.
static Object[]
replaceAssociations(Object[] original, Object[] target, Type[] types, SessionImplementor session, Object owner, Map copyCache, ForeignKeyDirection foreignKeyDirection)
Apply the Type.replace operation across a series of values, as long as the corresponding Type is an association.
static CollectionType
set(String role, String propertyRef, boolean embedded)
static CollectionType
sortedMap(String role, String propertyRef, boolean embedded, Comparator comparator)
static CollectionType
sortedSet(String role, String propertyRef, boolean embedded, Comparator comparator)

Method Details

array

public static CollectionType array(String role,
                                   String propertyRef,
                                   boolean embedded,
                                   Class elementClass)

assemble

public static Object[] assemble(Serializable[] row,
                                Type[] types,
                                SessionImplementor session,
                                Object owner)
Apply the Type.assemble(Serializable,SessionImplementor,Object) operation across a series of values.
Parameters:
row - The values
types - The value types
session - The orginating session
owner - The entity "owning" the values
Returns:
The assembled state

bag

public static CollectionType bag(String role,
                                 String propertyRef,
                                 boolean embedded)

basic

public static Type basic(String name)
Given the name of a Hibernate basic type, return an instance of org.hibernate.type.Type.

beforeAssemble

public static void beforeAssemble(Serializable[] row,
                                  Type[] types,
                                  SessionImplementor session)
Apply the Type.beforeAssemble(Serializable,SessionImplementor) operation across a series of values.
Parameters:
row - The values
types - The value types
session - The orginating session

customCollection

public static CollectionType customCollection(String typeName,
                                              Properties typeParameters,
                                              String role,
                                              String propertyRef,
                                              boolean embedded)

customCollection

public static CollectionType customCollection(String typeName,
                                              String role,
                                              String propertyRef,
                                              boolean embedded)

Deprecated. Use customCollection(String, java.util.Properties, String, String, boolean) instead

The legacy contract.

deepCopy

public static void deepCopy(Object[] values,
                            Type[] types,
                            boolean[] copy,
                            Object[] target,
                            SessionImplementor session)
Deep copy a series of values from one array to another...
Parameters:
values - The values to copy (the source)
types - The value types
copy - an array indicating which values to include in the copy
target - The array into which to copy the values
session - The orginating session

disassemble

public static Serializable[] disassemble(Object[] row,
                                         Type[] types,
                                         boolean[] nonCacheable,
                                         SessionImplementor session,
                                         Object owner)
Apply the Type.disassemble(Object,SessionImplementor,Object) operation across a series of values.
Parameters:
row - The values
types - The value types
nonCacheable - An array indicating which values to include in the disassemled state
session - The orginating session
owner - The entity "owning" the values
Returns:
The disassembled state

findDirty

public static int[] findDirty(StandardProperty[] properties,
                              Object[] currentState,
                              Object[] previousState,
                              boolean[][] includeColumns,
                              boolean anyUninitializedProperties,
                              SessionImplementor session)
Determine if any of the given field values are dirty, returning an array containing indices of the dirty fields.

If it is determined that no fields are dirty, null is returned.

Parameters:
properties - The property definitions
currentState - The current state of the entity
previousState - The baseline state of the entity
includeColumns - Columns to be included in the dirty checking, per property
anyUninitializedProperties - Does the entity currently hold any uninitialized property values?
session - The session from which the dirty check request originated.
Returns:
Array containing indices of the dirty properties, or null if no properties considered dirty.

findModified

public static int[] findModified(StandardProperty[] properties,
                                 Object[] currentState,
                                 Object[] previousState,
                                 boolean[][] includeColumns,
                                 boolean anyUninitializedProperties,
                                 SessionImplementor session)
Determine if any of the given field values are modified, returning an array containing indices of the modified fields.

If it is determined that no fields are dirty, null is returned.

Parameters:
properties - The property definitions
currentState - The current state of the entity
previousState - The baseline state of the entity
includeColumns - Columns to be included in the mod checking, per property
anyUninitializedProperties - Does the entity currently hold any uninitialized property values?
session - The session from which the dirty check request originated.
Returns:
Array containing indices of the modified properties, or null if no properties considered modified.

heuristicType

public static Type heuristicType(String typeName)
            throws MappingException
Uses heuristics to deduce a Hibernate type given a string naming the type or Java class. Return an instance of org.hibernate.type.Type.

heuristicType

public static Type heuristicType(String typeName,
                                 Properties parameters)
            throws MappingException
Uses heuristics to deduce a Hibernate type given a string naming the type or Java class. Return an instance of org.hibernate.type.Type.

idbag

public static CollectionType idbag(String role,
                                   String propertyRef,
                                   boolean embedded)

injectParameters

public static void injectParameters(Object type,
                                    Properties parameters)

list

public static CollectionType list(String role,
                                  String propertyRef,
                                  boolean embedded)

manyToOne

public static EntityType manyToOne(String persistentClass)
A many-to-one association type for the given class

manyToOne

public static EntityType manyToOne(String persistentClass,
                                   String uniqueKeyPropertyName,
                                   boolean lazy,
                                   boolean unwrapProxy,
                                   boolean isEmbeddedInXML,
                                   boolean ignoreNotFound)
A many-to-one association type for the given class

manyToOne

public static EntityType manyToOne(String persistentClass,
                                   boolean lazy)
A many-to-one association type for the given class

map

public static CollectionType map(String role,
                                 String propertyRef,
                                 boolean embedded)

oneToOne

public static EntityType oneToOne(String persistentClass,
                                  ForeignKeyDirection foreignKeyType,
                                  String uniqueKeyPropertyName,
                                  boolean lazy,
                                  boolean unwrapProxy,
                                  boolean isEmbeddedInXML,
                                  String entityName,
                                  String propertyName)
A one-to-one association type for the given class

orderedMap

public static CollectionType orderedMap(String role,
                                        String propertyRef,
                                        boolean embedded)

orderedSet

public static CollectionType orderedSet(String role,
                                        String propertyRef,
                                        boolean embedded)

replace

public static Object[] replace(Object[] original,
                               Object[] target,
                               Type[] types,
                               SessionImplementor session,
                               Object owner,
                               Map copyCache)
Apply the Type.replace operation across a series of values.
Parameters:
original - The source of the state
target - The target into which to replace the source values.
types - The value types
session - The orginating session
owner - The entity "owning" the values
copyCache - A map representing a cache of already replaced state
Returns:
The replaced state

replace

public static Object[] replace(Object[] original,
                               Object[] target,
                               Type[] types,
                               SessionImplementor session,
                               Object owner,
                               Map copyCache,
                               ForeignKeyDirection foreignKeyDirection)
Apply the Type.replace operation across a series of values.
Parameters:
original - The source of the state
target - The target into which to replace the source values.
types - The value types
session - The orginating session
owner - The entity "owning" the values
copyCache - A map representing a cache of already replaced state
foreignKeyDirection - FK directionality to be applied to the replacement
Returns:
The replaced state

replaceAssociations

public static Object[] replaceAssociations(Object[] original,
                                           Object[] target,
                                           Type[] types,
                                           SessionImplementor session,
                                           Object owner,
                                           Map copyCache,
                                           ForeignKeyDirection foreignKeyDirection)
Apply the Type.replace operation across a series of values, as long as the corresponding Type is an association.

If the corresponding type is a component type, then apply replaceAssociations(Object[],Object[],Type[],SessionImplementor,Object,Map,ForeignKeyDirection) accross the component subtypes but do not replace the component value itself.

Parameters:
original - The source of the state
target - The target into which to replace the source values.
types - The value types
session - The orginating session
owner - The entity "owning" the values
copyCache - A map representing a cache of already replaced state
foreignKeyDirection - FK directionality to be applied to the replacement
Returns:
The replaced state

set

public static CollectionType set(String role,
                                 String propertyRef,
                                 boolean embedded)

sortedMap

public static CollectionType sortedMap(String role,
                                       String propertyRef,
                                       boolean embedded,
                                       Comparator comparator)

sortedSet

public static CollectionType sortedSet(String role,
                                       String propertyRef,
                                       boolean embedded,
                                       Comparator comparator)