org.hibernate.envers.entities.mapper
Class SubclassPropertyMapper

java.lang.Object
  extended by org.hibernate.envers.entities.mapper.SubclassPropertyMapper
All Implemented Interfaces:
CompositeMapperBuilder, ExtendedPropertyMapper, PropertyMapper, SimpleMapperBuilder

public class SubclassPropertyMapper
extends Object
implements ExtendedPropertyMapper

A mapper which maps from a parent mapper and a "main" one, but adds only to the "main". The "main" mapper should be the mapper of the subclass.

Author:
Adam Warski (adam at warski dot org)

Constructor Summary
SubclassPropertyMapper(ExtendedPropertyMapper main, ExtendedPropertyMapper parentMapper)
           
 
Method Summary
 void add(PropertyData propertyData)
           
 CompositeMapperBuilder addComponent(PropertyData propertyData, String componentClassName)
           
 void addComposite(PropertyData propertyData, PropertyMapper propertyMapper)
           
 boolean map(SessionImplementor session, Map<String,Object> data, String[] propertyNames, Object[] newState, Object[] oldState)
           
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SubclassPropertyMapper

public SubclassPropertyMapper(ExtendedPropertyMapper main,
                              ExtendedPropertyMapper parentMapper)
Method Detail

map

public boolean map(SessionImplementor session,
                   Map<String,Object> data,
                   String[] propertyNames,
                   Object[] newState,
                   Object[] oldState)
Specified by:
map in interface ExtendedPropertyMapper

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.

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

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.

addComponent

public CompositeMapperBuilder addComponent(PropertyData propertyData,
                                           String componentClassName)
Specified by:
addComponent in interface CompositeMapperBuilder

addComposite

public void addComposite(PropertyData propertyData,
                         PropertyMapper propertyMapper)
Specified by:
addComposite in interface CompositeMapperBuilder

add

public void add(PropertyData propertyData)
Specified by:
add in interface SimpleMapperBuilder


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