org.hibernate.envers.entities.mapper.relation
Class AbstractCollectionMapper<T>

java.lang.Object
  extended by org.hibernate.envers.entities.mapper.relation.AbstractCollectionMapper<T>
All Implemented Interfaces:
PropertyMapper
Direct Known Subclasses:
BasicCollectionMapper, ListCollectionMapper, MapCollectionMapper

public abstract class AbstractCollectionMapper<T>
extends Object
implements PropertyMapper

Author:
Adam Warski (adam at warski dot org)

Field Summary
protected  Class<? extends T> collectionClass
           
protected  CommonCollectionMapperData commonCollectionMapperData
           
 
Constructor Summary
protected AbstractCollectionMapper(CommonCollectionMapperData commonCollectionMapperData, Class<? extends T> collectionClass, Class<? extends T> proxyClass)
           
 
Method Summary
protected abstract  Initializor<T> getInitializor(AuditConfiguration verCfg, AuditReaderImplementor versionsReader, Object primaryKey, Number revision)
           
protected abstract  Collection getNewCollectionContent(PersistentCollection newCollection)
           
protected abstract  Collection getOldCollectionContent(Serializable oldCollection)
           
 List<PersistentCollectionChangeData> mapCollectionChanges(String referencingPropertyName, PersistentCollection newColl, Serializable oldColl, Serializable id)
          Maps collection changes
 void mapToEntityFromMap(AuditConfiguration verCfg, Object obj, Map data, Object primaryKey, AuditReaderImplementor versionsReader, Number revision)
          Maps properties from the given map to the given object.
 boolean mapToMapFromEntity(SessionImplementor session, Map<String,Object> data, Object newObj, Object oldObj)
          Maps properties to the given map, basing on differences between properties of new and old objects.
protected abstract  void mapToMapFromObject(Map<String,Object> data, Object changed)
          Maps the changed collection element to the given map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

commonCollectionMapperData

protected final CommonCollectionMapperData commonCollectionMapperData

collectionClass

protected final Class<? extends T> collectionClass
Constructor Detail

AbstractCollectionMapper

protected AbstractCollectionMapper(CommonCollectionMapperData commonCollectionMapperData,
                                   Class<? extends T> collectionClass,
                                   Class<? extends T> proxyClass)
Method Detail

getNewCollectionContent

protected abstract Collection getNewCollectionContent(PersistentCollection newCollection)

getOldCollectionContent

protected abstract Collection getOldCollectionContent(Serializable oldCollection)

mapToMapFromObject

protected abstract void mapToMapFromObject(Map<String,Object> data,
                                           Object changed)
Maps the changed collection element to the given map.

Parameters:
data - Where to map the data.
changed - The changed collection element to map.

mapCollectionChanges

public List<PersistentCollectionChangeData> mapCollectionChanges(String referencingPropertyName,
                                                                 PersistentCollection newColl,
                                                                 Serializable oldColl,
                                                                 Serializable id)
Description copied from interface: PropertyMapper
Maps collection changes

Specified by:
mapCollectionChanges in interface PropertyMapper
Parameters:
referencingPropertyName - Name of the field, which holds the collection in the entity.
newColl - New collection, after updates.
oldColl - Old collection, before updates.
id - Id of the object owning the collection.
Returns:
List of changes that need to be performed on the persistent store.

mapToMapFromEntity

public boolean mapToMapFromEntity(SessionImplementor session,
                                  Map<String,Object> data,
                                  Object newObj,
                                  Object oldObj)
Description copied from interface: PropertyMapper
Maps properties to the given map, basing on differences between properties of new and old objects.

Specified by:
mapToMapFromEntity in interface PropertyMapper
Parameters:
session - The current session.
data - Data to map to.
newObj - New state of the entity.
oldObj - Old state of the entity.
Returns:
True if there are any differences between the states represented by newObj and oldObj.

getInitializor

protected abstract Initializor<T> getInitializor(AuditConfiguration verCfg,
                                                 AuditReaderImplementor versionsReader,
                                                 Object primaryKey,
                                                 Number revision)

mapToEntityFromMap

public void mapToEntityFromMap(AuditConfiguration verCfg,
                               Object obj,
                               Map data,
                               Object primaryKey,
                               AuditReaderImplementor versionsReader,
                               Number revision)
Description copied from interface: PropertyMapper
Maps properties from the given map to the given object.

Specified by:
mapToEntityFromMap in interface PropertyMapper
Parameters:
verCfg - Versions configuration.
obj - Object to map to.
data - Data to map from.
primaryKey - Primary key of the object to which we map (for relations)
versionsReader - VersionsReader for reading relations
revision - Revision at which the object is read, for reading relations


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