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


Field Summary
protected  Class<? extends T> collectionClass
           
protected  CommonCollectionMapperData commonCollectionMapperData
           
protected  boolean ordinalInId
           
protected  boolean revisionTypeInId
           
 
Constructor Summary
protected AbstractCollectionMapper(CommonCollectionMapperData commonCollectionMapperData, Class<? extends T> collectionClass, Class<? extends T> proxyClass, boolean ordinalInId, boolean revisionTypeInId)
           
 
Method Summary
protected  Map<String,Object> createIdMap(int ordinal)
          Creates map for storing identifier data.
protected abstract  Initializor<T> getInitializor(AuditConfiguration verCfg, AuditReaderImplementor versionsReader, Object primaryKey, Number revision, boolean removed)
           
protected abstract  Collection getNewCollectionContent(PersistentCollection newCollection)
           
protected abstract  Collection getOldCollectionContent(Serializable oldCollection)
           
 List<PersistentCollectionChangeData> mapCollectionChanges(SessionImplementor session, String referencingPropertyName, PersistentCollection newColl, Serializable oldColl, Serializable id)
          Maps collection changes.
 void mapModifiedFlagsToMapForCollectionChange(String collectionPropertyName, Map<String,Object> data)
           
 void mapModifiedFlagsToMapFromEntity(SessionImplementor session, Map<String,Object> data, Object newObj, Object oldObj)
           
 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(SessionImplementor session, Map<String,Object> idData, 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

ordinalInId

protected final boolean ordinalInId

revisionTypeInId

protected final boolean revisionTypeInId
Constructor Detail

AbstractCollectionMapper

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

getNewCollectionContent

protected abstract Collection getNewCollectionContent(PersistentCollection newCollection)

getOldCollectionContent

protected abstract Collection getOldCollectionContent(Serializable oldCollection)

mapToMapFromObject

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

Parameters:
idData - Map to which composite-id data should be added.
data - Where to map the data.
changed - The changed collection element to map.

createIdMap

protected Map<String,Object> createIdMap(int ordinal)
Creates map for storing identifier data. Ordinal parameter guarantees uniqueness of primary key. Composite primary key cannot contain embeddable properties since they might be nullable.

Parameters:
ordinal - Iteration ordinal.
Returns:
Map for holding identifier data.

mapCollectionChanges

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

Specified by:
mapCollectionChanges in interface PropertyMapper
Parameters:
session - The current session.
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.

mapModifiedFlagsToMapFromEntity

public void mapModifiedFlagsToMapFromEntity(SessionImplementor session,
                                            Map<String,Object> data,
                                            Object newObj,
                                            Object oldObj)
Specified by:
mapModifiedFlagsToMapFromEntity in interface PropertyMapper

mapModifiedFlagsToMapForCollectionChange

public void mapModifiedFlagsToMapForCollectionChange(String collectionPropertyName,
                                                     Map<String,Object> data)
Specified by:
mapModifiedFlagsToMapForCollectionChange in interface PropertyMapper

getInitializor

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

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-2015 Red Hat, Inc. All Rights Reserved.