org.hibernate.type
Class ArrayType

java.lang.Object
  extended by org.hibernate.type.AbstractType
      extended by org.hibernate.type.CollectionType
          extended by org.hibernate.type.ArrayType
All Implemented Interfaces:
Serializable, AssociationType, Type

public class ArrayType
extends CollectionType

A type for persistent arrays.

Author:
Gavin King
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.hibernate.type.CollectionType
UNFETCHED_COLLECTION
 
Constructor Summary
ArrayType(String role, String propertyRef, Class elementClass, boolean isEmbeddedInXML)
           
 
Method Summary
 Iterator getElementsIterator(Object collection)
          Not defined for collections of primitive type
 Class getReturnedClass()
          The class returned by nullSafeGet() methods.
 boolean hasHolder(EntityMode entityMode)
           
 Object indexOf(Object array, Object element)
           
protected  boolean initializeImmediately(EntityMode entityMode)
           
 Object instantiate(int anticipatedSize)
          Instantiate an empty instance of the "underlying" collection (not a wrapper), but with the given anticipated size (i.e.
 PersistentCollection instantiate(SessionImplementor session, CollectionPersister persister, Serializable key)
          Instantiate an uninitialized collection wrapper or holder.
 Object instantiateResult(Object original)
          Instantiate a new "underlying" collection exhibiting the same capacity charactersitcs and the passed "original".
 boolean isArrayType()
           
 Object replaceElements(Object original, Object target, Object owner, Map copyCache, SessionImplementor session)
          Replace the elements of a collection with the elements of another collection.
 String toLoggableString(Object value, SessionFactoryImplementor factory)
          A representation of the value to be embedded in a log file.
 PersistentCollection wrap(SessionImplementor session, Object array)
          Wrap the naked collection instance in a wrapper, or instantiate a holder.
 
Methods inherited from class org.hibernate.type.CollectionType
assemble, compare, contains, deepCopy, disassemble, fromXMLNode, getAssociatedEntityName, getAssociatedJoinable, getCollection, getColumnSpan, getElementsIterator, getElementType, getForeignKeyDirection, getHashCode, getIdOfOwnerOrNull, getKeyOfOwner, getLHSPropertyName, getName, getOnCondition, getRHSUniqueKeyPropertyName, getRole, hydrate, isAlwaysDirtyChecked, isAssociationType, isCollectionType, isDirty, isDirty, isEmbeddedInXML, isEqual, isModified, isMutable, isXMLElement, nullSafeGet, nullSafeGet, nullSafeSet, nullSafeSet, renderLoggableString, replace, resolve, semiResolve, setToXMLNode, sqlTypes, toColumnNullness, toString, useLHSPrimaryKey
 
Methods inherited from class org.hibernate.type.AbstractType
beforeAssemble, getHashCode, getSemiResolvedType, isAnyType, isComponentType, isEntityType, isEqual, isSame, replace, replaceNode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.hibernate.type.Type
beforeAssemble, getHashCode, getSemiResolvedType, isAnyType, isComponentType, isEntityType, isEqual, isSame, replace
 

Constructor Detail

ArrayType

public ArrayType(String role,
                 String propertyRef,
                 Class elementClass,
                 boolean isEmbeddedInXML)
Method Detail

getReturnedClass

public Class getReturnedClass()
Description copied from interface: Type
The class returned by nullSafeGet() methods. This is used to establish the class of an array of this type.

Returns:
Class

instantiate

public PersistentCollection instantiate(SessionImplementor session,
                                        CollectionPersister persister,
                                        Serializable key)
                                 throws HibernateException
Description copied from class: CollectionType
Instantiate an uninitialized collection wrapper or holder. Callers MUST add the holder to the persistence context!

Specified by:
instantiate in class CollectionType
Parameters:
session - The session from which the request is originating.
persister - The underlying collection persister (metadata)
key - The owner key.
Returns:
The instantiated collection.
Throws:
HibernateException

getElementsIterator

public Iterator getElementsIterator(Object collection)
Not defined for collections of primitive type

Overrides:
getElementsIterator in class CollectionType
Parameters:
collection - The collection to be iterated
Returns:
The iterator.

wrap

public PersistentCollection wrap(SessionImplementor session,
                                 Object array)
Description copied from class: CollectionType
Wrap the naked collection instance in a wrapper, or instantiate a holder. Callers MUST add the holder to the persistence context!

Specified by:
wrap in class CollectionType
Parameters:
session - The session from which the request is originating.
array - The bare collection to be wrapped.
Returns:
The wrapped collection.

isArrayType

public boolean isArrayType()
Overrides:
isArrayType in class CollectionType

toLoggableString

public String toLoggableString(Object value,
                               SessionFactoryImplementor factory)
                        throws HibernateException
Description copied from interface: Type
A representation of the value to be embedded in a log file.

Specified by:
toLoggableString in interface Type
Overrides:
toLoggableString in class CollectionType
Returns:
String
Throws:
HibernateException

instantiateResult

public Object instantiateResult(Object original)
Description copied from class: CollectionType
Instantiate a new "underlying" collection exhibiting the same capacity charactersitcs and the passed "original".

Overrides:
instantiateResult in class CollectionType
Parameters:
original - The original collection.
Returns:
The newly instantiated collection.

replaceElements

public Object replaceElements(Object original,
                              Object target,
                              Object owner,
                              Map copyCache,
                              SessionImplementor session)
                       throws HibernateException
Description copied from class: CollectionType
Replace the elements of a collection with the elements of another collection.

Overrides:
replaceElements in class CollectionType
Parameters:
original - The 'source' of the replacement elements (where we copy from)
target - The target of the replacement elements (where we copy to)
owner - The owner of the collection being merged
copyCache - The map of elements already replaced.
session - The session from which the merge event originated.
Returns:
The merged collection.
Throws:
HibernateException

instantiate

public Object instantiate(int anticipatedSize)
Description copied from class: CollectionType
Instantiate an empty instance of the "underlying" collection (not a wrapper), but with the given anticipated size (i.e. accounting for initial capacity and perhaps load factor).

Specified by:
instantiate in class CollectionType
Parameters:
anticipatedSize - The anticipated size of the instaniated collection after we are done populating it.
Returns:
A newly instantiated collection to be wrapped.

indexOf

public Object indexOf(Object array,
                      Object element)
Overrides:
indexOf in class CollectionType

initializeImmediately

protected boolean initializeImmediately(EntityMode entityMode)
Overrides:
initializeImmediately in class CollectionType

hasHolder

public boolean hasHolder(EntityMode entityMode)
Overrides:
hasHolder in class CollectionType