org.hibernate.type
Class CustomCollectionType

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

public class CustomCollectionType
extends CollectionType

A custom type for mapping user-written classes that implement PersistentCollection

Author:
Gavin King
See Also:
PersistentCollection, UserCollectionType, Serialized Form

Field Summary
 
Fields inherited from class org.hibernate.type.CollectionType
UNFETCHED_COLLECTION
 
Constructor Summary
CustomCollectionType(Class userTypeClass, String role, String foreignKeyPropertyName, boolean isEmbeddedInXML)
           
 
Method Summary
 boolean contains(Object collection, Object entity, SessionImplementor session)
           
 Iterator getElementsIterator(Object collection)
          Get an iterator over the element set of the collection in POJO mode
 Class getReturnedClass()
          The class returned by nullSafeGet() methods.
 UserCollectionType getUserType()
           
 Object indexOf(Object collection, Object entity)
           
 Object instantiate(int anticipatedType)
          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.
protected  String renderLoggableString(Object value, SessionFactoryImplementor factory)
           
 Object replaceElements(Object original, Object target, Object owner, Map copyCache, SessionImplementor session)
          Replace the elements of a collection with the elements of another collection.
 PersistentCollection wrap(SessionImplementor session, Object collection)
          Wrap the naked collection instance in a wrapper, or instantiate a holder.
 
Methods inherited from class org.hibernate.type.CollectionType
assemble, compare, deepCopy, disassemble, fromXMLNode, getAssociatedEntityName, getAssociatedJoinable, getCollection, getColumnSpan, getElementsIterator, getElementType, getForeignKeyDirection, getHashCode, getIdOfOwnerOrNull, getKeyOfOwner, getLHSPropertyName, getName, getOnCondition, getRHSUniqueKeyPropertyName, getRole, hasHolder, hydrate, initializeImmediately, instantiateResult, isAlwaysDirtyChecked, isArrayType, isAssociationType, isCollectionType, isDirty, isDirty, isEmbeddedInXML, isEqual, isModified, isMutable, isXMLElement, nullSafeGet, nullSafeGet, nullSafeSet, nullSafeSet, replace, resolve, semiResolve, setToXMLNode, sqlTypes, toColumnNullness, toLoggableString, 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

CustomCollectionType

public CustomCollectionType(Class userTypeClass,
                            String role,
                            String foreignKeyPropertyName,
                            boolean isEmbeddedInXML)
Method Detail

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

wrap

public PersistentCollection wrap(SessionImplementor session,
                                 Object collection)
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.
collection - The bare collection to be wrapped.
Returns:
The wrapped collection.

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 Object instantiate(int anticipatedType)
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:
anticipatedType - The anticipated size of the instaniated collection after we are done populating it.
Returns:
A newly instantiated collection to be wrapped.

getElementsIterator

public Iterator getElementsIterator(Object collection)
Description copied from class: CollectionType
Get an iterator over the element set of the collection in POJO mode

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

contains

public boolean contains(Object collection,
                        Object entity,
                        SessionImplementor session)
Overrides:
contains in class CollectionType

indexOf

public Object indexOf(Object collection,
                      Object entity)
Overrides:
indexOf in class CollectionType

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

renderLoggableString

protected String renderLoggableString(Object value,
                                      SessionFactoryImplementor factory)
                               throws HibernateException
Overrides:
renderLoggableString in class CollectionType
Throws:
HibernateException

getUserType

public UserCollectionType getUserType()


Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.