## org.hibernate.envers.synchronization.work
Class PersistentCollectionChangeWorkUnit

    java.lang.Object
      org.hibernate.envers.synchronization.work.AbstractAuditWorkUnit
          org.hibernate.envers.synchronization.work.PersistentCollectionChangeWorkUnit

All Implemented Interfaces:
  AuditWorkUnit, WorkUnitMergeDispatcher, WorkUnitMergeVisitor

    public class PersistentCollectionChangeWorkUnit

extends AbstractAuditWorkUnit
implements AuditWorkUnit

Nested Class Summary
`static class` `PersistentCollectionChangeWorkUnit.PersistentCollectionChangeWorkUnitId` A unique identifier for a collection work unit.

Field Summary

Fields inherited from class org.hibernate.envers.synchronization.work.AbstractAuditWorkUnit
`auditStrategy, entityName, id, revisionType, sessionImplementor, verCfg`

Constructor Summary
`PersistentCollectionChangeWorkUnit(SessionImplementor sessionImplementor, String entityName, AuditConfiguration auditCfg, PersistentCollection collection, CollectionEntry collectionEntry, Serializable snapshot, Serializable id, String referencingPropertyName)`
`PersistentCollectionChangeWorkUnit(SessionImplementor sessionImplementor, String entityName, AuditConfiguration verCfg, Serializable id, List<PersistentCollectionChangeData> collectionChanges, String referencingPropertyName)`

Method Summary
`boolean` `containsWork()`
`AuditWorkUnit` `dispatch(WorkUnitMergeVisitor first)` Shuold be invoked on the second work unit.
`Map<String,Object>` `generateData(Object revisionData)`
`List<PersistentCollectionChangeData>` `getCollectionChanges()`
`String` `getReferencingPropertyName()`
`AuditWorkUnit` `merge(AddWorkUnit second)`
`AuditWorkUnit` `merge(CollectionChangeWorkUnit second)`
`AuditWorkUnit` `merge(DelWorkUnit second)`
`AuditWorkUnit` `merge(FakeBidirectionalRelationWorkUnit second)`
`AuditWorkUnit` `merge(ModWorkUnit second)`
`void` `perform(Session session, Object revisionData)` Perform this work unit in the given session.

Methods inherited from class org.hibernate.envers.synchronization.work.AbstractAuditWorkUnit
`fillDataWithId, getEntityId, getEntityName, getRevisionType, isPerformed, setPerformed, undo`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.hibernate.envers.synchronization.work.AuditWorkUnit
`getEntityId, getEntityName, getRevisionType, isPerformed, undo`

Constructor Detail

### PersistentCollectionChangeWorkUnit

    public PersistentCollectionChangeWorkUnit(SessionImplementor sessionImplementor,
                                              String entityName,
                                              AuditConfiguration auditCfg,
                                              PersistentCollection collection,
                                              CollectionEntry collectionEntry,
                                              Serializable snapshot,
                                              Serializable id,
                                              String referencingPropertyName)

### PersistentCollectionChangeWorkUnit

    public PersistentCollectionChangeWorkUnit(SessionImplementor sessionImplementor,
                                              String entityName,
                                              AuditConfiguration verCfg,
                                              Serializable id,
                                              List<PersistentCollectionChangeData> collectionChanges,
                                              String referencingPropertyName)

Method Detail

### containsWork

    public boolean containsWork()

  Specified by:
    `containsWork` in interface `AuditWorkUnit`

### generateData

    public Map<String,Object> generateData(Object revisionData)

  Specified by:
    `generateData` in interface `AuditWorkUnit`
  Parameters:
    `revisionData` - The current revision data, which will be used to populate the work unit with the correct revision relation.
  Returns:
    Generates data that should be saved when performing this work unit.

### perform

    public void perform(Session session,
                        Object revisionData)

  Description copied from interface: `AuditWorkUnit`
  Perform this work unit in the given session.

  Specified by:
    `perform` in interface `AuditWorkUnit`
  Overrides:
    `perform` in class `AbstractAuditWorkUnit`
  Parameters:
    `session` - Session, in which the work unit should be performed.
    `revisionData` - The current revision data, which will be used to populate the work unit with the correct revision relation.

### getReferencingPropertyName

    public String getReferencingPropertyName()

### getCollectionChanges

    public List<PersistentCollectionChangeData> getCollectionChanges()

### merge

    public AuditWorkUnit merge(AddWorkUnit second)

  Specified by:
    `merge` in interface `WorkUnitMergeVisitor`

### merge

    public AuditWorkUnit merge(ModWorkUnit second)

  Specified by:
    `merge` in interface `WorkUnitMergeVisitor`

### merge

    public AuditWorkUnit merge(DelWorkUnit second)

  Specified by:
    `merge` in interface `WorkUnitMergeVisitor`

### merge

    public AuditWorkUnit merge(CollectionChangeWorkUnit second)

  Specified by:
    `merge` in interface `WorkUnitMergeVisitor`

### merge

    public AuditWorkUnit merge(FakeBidirectionalRelationWorkUnit second)

  Specified by:
    `merge` in interface `WorkUnitMergeVisitor`

### dispatch

    public AuditWorkUnit dispatch(WorkUnitMergeVisitor first)

  Description copied from interface: `WorkUnitMergeDispatcher`
  Shuold be invoked on the second work unit.

  Specified by:
    `dispatch` in interface `WorkUnitMergeDispatcher`
  Parameters:
    `first` - First work unit (that is, the one added earlier).
  Returns:
    The work unit that is the result of the merge.

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