DirtyChecker<E>
, PluralDirtyChecker<E,V>
, DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V>
, FetchGraphNode<E>
IndexedListAttributeFlusher
public class CollectionAttributeFlusher<E,V extends java.util.Collection<?>> extends AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V>,CollectionAction<?>,RecordingCollection<?,?>,E,V> implements DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V>
AbstractPluralAttributeFlusher.DeepEqualityChecker, AbstractPluralAttributeFlusher.EntityIdWithViewIdEqualityChecker, AbstractPluralAttributeFlusher.EntityWithViewEqualityChecker, AbstractPluralAttributeFlusher.EqualityChecker, AbstractPluralAttributeFlusher.EqualsEqualityChecker, AbstractPluralAttributeFlusher.IdentityEqualityChecker, AbstractPluralAttributeFlusher.PluralFlushOperation
DirtyChecker.DirtyKind
cascadeDeleteListener, collectionActions, collectionUpdatable, elementDescriptor, elementDirtyChecker, elementFlushers, entityAttributeMapper, flushOperation, flushStrategy, jpaProviderDeletesCollection, optimisticLockProtected, ownerEntityClass, ownerIdAttributeName, removeListener, viewAttributeAccessor, viewOnlyDeleteCascaded
attributeName, fetch, mapping, nestedGraphNode
Modifier | Constructor | Description |
---|---|---|
protected |
CollectionAttributeFlusher(CollectionAttributeFlusher original,
boolean fetch) |
|
protected |
CollectionAttributeFlusher(CollectionAttributeFlusher original,
boolean fetch,
AbstractPluralAttributeFlusher.PluralFlushOperation flushOperation,
java.util.List<? extends CollectionAction<?>> collectionActions,
java.util.List<CollectionElementAttributeFlusher<E,V>> elementFlushers) |
|
|
CollectionAttributeFlusher(java.lang.String attributeName,
java.lang.String mapping,
java.lang.Class<?> ownerEntityClass,
java.lang.String ownerIdAttributeName,
FlushStrategy flushStrategy,
AttributeAccessor entityAttributeAccessor,
InitialValueAttributeAccessor viewAttributeAccessor,
boolean optimisticLockProtected,
boolean collectionUpdatable,
boolean viewOnlyDeleteCascaded,
boolean jpaProviderDeletesCollection,
CollectionRemoveListener cascadeDeleteListener,
CollectionRemoveListener removeListener,
CollectionInstantiator collectionInstantiator,
TypeDescriptor elementDescriptor,
InverseFlusher<E> inverseFlusher,
InverseRemoveStrategy inverseRemoveStrategy) |
Modifier and Type | Method | Description |
---|---|---|
protected boolean |
areActionsQueueable(RecordingCollection<?,?> collection) |
|
V |
cloneDeep(java.lang.Object view,
V oldValue,
V newValue) |
|
protected boolean |
collectionEquals(V initial,
V current) |
|
protected V |
createCollection(int size) |
|
protected V |
createJpaCollection(int size) |
|
protected RecordingCollection<?,?> |
createRecordingCollection(int size) |
|
protected java.util.List<CollectionAction<java.util.Collection<?>>> |
determineCollectionActions(UpdateContext context,
V initial,
V current,
AbstractPluralAttributeFlusher.EqualityChecker equalityChecker) |
|
protected java.util.List<CollectionAction<java.util.Collection<?>>> |
determineCollectionActionsForNonSubview(UpdateContext context,
V initial,
V current,
AbstractPluralAttributeFlusher.EqualityChecker equalityChecker) |
|
protected java.util.List<CollectionAction<java.util.Collection<?>>> |
determineCollectionActionsForSubview(UpdateContext context,
V initial,
V current) |
|
protected DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V> |
determineDirtyFlusherForNewCollection(UpdateContext context,
V initial,
V current) |
|
protected java.util.List<CollectionAction<java.util.Collection<?>>> |
determineJpaCollectionActions(UpdateContext context,
V initial,
V current,
AbstractPluralAttributeFlusher.EqualityChecker equalityChecker) |
|
protected java.util.List<CollectionAction<java.util.Collection<?>>> |
determineJpaCollectionActionsForNonSubview(UpdateContext context,
V initial,
V current,
AbstractPluralAttributeFlusher.EqualityChecker equalityChecker) |
|
protected java.util.List<CollectionAction<java.util.Collection<?>>> |
determineJpaCollectionActionsForSubview(UpdateContext context,
V initial,
V current) |
|
protected boolean |
executeActions(UpdateContext context,
java.util.Collection<java.lang.Object> jpaCollection,
java.util.List<CollectionAction<java.util.Collection<?>>> actions,
ViewToEntityMapper mapper) |
|
boolean |
flushEntity(UpdateContext context,
E entity,
java.lang.Object view,
V value,
java.lang.Runnable postReplaceListener) |
|
void |
flushQuery(UpdateContext context,
java.lang.String parameterPrefix,
javax.persistence.Query query,
java.lang.Object view,
V value) |
|
protected int |
getActionUnrelatedDirtyObjectCount(V initial,
java.util.List<CollectionElementAttributeFlusher<E,V>> elementFlushers,
java.util.List<? extends CollectionAction<?>> actions) |
|
DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V> |
getDirtyFlusher(UpdateContext context,
java.lang.Object view,
java.lang.Object initial,
java.lang.Object current) |
|
protected DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V> |
getDirtyFlusherForRecordingCollection(UpdateContext context,
V initial,
RecordingCollection<?,?> collection) |
|
DirtyChecker.DirtyKind |
getDirtyKind(V initial,
V current) |
Returns the dirty kind of the objects.
|
DirtyChecker<E> |
getElementDirtyChecker(E element) |
|
protected java.util.List<CollectionElementAttributeFlusher<E,V>> |
getElementFlushers(UpdateContext context,
V current) |
|
<X> DirtyChecker<X>[] |
getNestedCheckers(V current) |
|
java.lang.Object |
getNewInitialValue(UpdateContext context,
V clonedValue,
V currentValue) |
|
protected void |
invokeCollectionAction(UpdateContext context,
V targetCollection,
java.util.List<? extends CollectionAction<?>> collectionActions) |
|
boolean |
isViewOnlyDeleteCascaded() |
|
protected boolean |
mergeAndRequeue(UpdateContext context,
RecordingCollection recordingCollection,
java.util.Collection<java.lang.Object> newCollection) |
|
protected boolean |
mergeCollectionElements(UpdateContext context,
java.lang.Object view,
E entity,
V value) |
|
FetchGraphNode<?> |
mergeWith(java.util.List<CollectionAttributeFlusher<E,V>> fetchGraphNodes) |
|
protected CollectionAttributeFlusher<E,V> |
partialFlusher(boolean fetch,
AbstractPluralAttributeFlusher.PluralFlushOperation operation,
java.util.List<? extends CollectionAction<?>> collectionActions,
java.util.List<CollectionElementAttributeFlusher<E,V>> elementFlushers) |
|
java.util.List<PostFlushDeleter> |
remove(UpdateContext context,
E entity,
java.lang.Object view,
V value) |
|
void |
remove(UpdateContext context,
java.lang.Object id) |
|
java.util.List<PostFlushDeleter> |
removeByOwnerId(UpdateContext context,
java.lang.Object id) |
|
void |
removeFromEntity(UpdateContext context,
E entity) |
|
protected void |
replaceCollection(UpdateContext context,
E entity,
V value) |
|
protected V |
replaceWithRecordingCollection(UpdateContext context,
java.lang.Object view,
V value,
java.util.List<? extends CollectionAction<?>> actions) |
|
boolean |
requiresDeleteCascadeAfterRemove() |
|
boolean |
requiresFlushAfterPersist(V value) |
|
boolean |
supportsQueryFlush() |
appendUpdateQueryFragment, determineElementFlushers, getElementIdAttributeName, getElementOnlyFlusher, getReplaceOrMergeAndElementFlusher, getReplaceOrMergeOnlyFlusher, getReplayAndElementFlusher, getReplayOnlyFlusher, getViewAttributeAccessor, invokeFlushOperation, isOptimisticLockProtected, isPassThrough, persistIfNeeded, persistOrMerge, persistOrMerge
appendFetchJoinQueryFragment, getAttributeName
appendFetchJoinQueryFragment, appendUpdateQueryFragment, getElementIdAttributeName, getViewAttributeAccessor, isOptimisticLockProtected, isPassThrough
getAttributeName
public CollectionAttributeFlusher(java.lang.String attributeName, java.lang.String mapping, java.lang.Class<?> ownerEntityClass, java.lang.String ownerIdAttributeName, FlushStrategy flushStrategy, AttributeAccessor entityAttributeAccessor, InitialValueAttributeAccessor viewAttributeAccessor, boolean optimisticLockProtected, boolean collectionUpdatable, boolean viewOnlyDeleteCascaded, boolean jpaProviderDeletesCollection, CollectionRemoveListener cascadeDeleteListener, CollectionRemoveListener removeListener, CollectionInstantiator collectionInstantiator, TypeDescriptor elementDescriptor, InverseFlusher<E> inverseFlusher, InverseRemoveStrategy inverseRemoveStrategy)
protected CollectionAttributeFlusher(CollectionAttributeFlusher original, boolean fetch)
protected CollectionAttributeFlusher(CollectionAttributeFlusher original, boolean fetch, AbstractPluralAttributeFlusher.PluralFlushOperation flushOperation, java.util.List<? extends CollectionAction<?>> collectionActions, java.util.List<CollectionElementAttributeFlusher<E,V>> elementFlushers)
protected V createCollection(int size)
protected V createJpaCollection(int size)
protected RecordingCollection<?,?> createRecordingCollection(int size)
public V cloneDeep(java.lang.Object view, V oldValue, V newValue)
cloneDeep
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
public java.lang.Object getNewInitialValue(UpdateContext context, V clonedValue, V currentValue)
getNewInitialValue
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
protected void invokeCollectionAction(UpdateContext context, V targetCollection, java.util.List<? extends CollectionAction<?>> collectionActions)
invokeCollectionAction
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
protected V replaceWithRecordingCollection(UpdateContext context, java.lang.Object view, V value, java.util.List<? extends CollectionAction<?>> actions)
replaceWithRecordingCollection
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
public boolean supportsQueryFlush()
supportsQueryFlush
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
supportsQueryFlush
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
public boolean requiresFlushAfterPersist(V value)
requiresFlushAfterPersist
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
requiresFlushAfterPersist
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
protected boolean executeActions(UpdateContext context, java.util.Collection<java.lang.Object> jpaCollection, java.util.List<CollectionAction<java.util.Collection<?>>> actions, ViewToEntityMapper mapper)
public FetchGraphNode<?> mergeWith(java.util.List<CollectionAttributeFlusher<E,V>> fetchGraphNodes)
mergeWith
in interface FetchGraphNode<E>
mergeWith
in class AttributeFetchGraphNode<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>>
public void flushQuery(UpdateContext context, java.lang.String parameterPrefix, javax.persistence.Query query, java.lang.Object view, V value)
flushQuery
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
flushQuery
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
public boolean flushEntity(UpdateContext context, E entity, java.lang.Object view, V value, java.lang.Runnable postReplaceListener)
flushEntity
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
public java.util.List<PostFlushDeleter> remove(UpdateContext context, E entity, java.lang.Object view, V value)
remove
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
public java.util.List<PostFlushDeleter> removeByOwnerId(UpdateContext context, java.lang.Object id)
removeByOwnerId
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
public void remove(UpdateContext context, java.lang.Object id)
remove
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
public void removeFromEntity(UpdateContext context, E entity)
removeFromEntity
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
public boolean requiresDeleteCascadeAfterRemove()
requiresDeleteCascadeAfterRemove
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
public boolean isViewOnlyDeleteCascaded()
isViewOnlyDeleteCascaded
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
protected boolean mergeCollectionElements(UpdateContext context, java.lang.Object view, E entity, V value)
mergeCollectionElements
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
protected boolean mergeAndRequeue(UpdateContext context, RecordingCollection recordingCollection, java.util.Collection<java.lang.Object> newCollection)
protected void replaceCollection(UpdateContext context, E entity, V value)
replaceCollection
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
public <X> DirtyChecker<X>[] getNestedCheckers(V current)
getNestedCheckers
in interface DirtyChecker<E>
public DirtyChecker<E> getElementDirtyChecker(E element)
getElementDirtyChecker
in interface PluralDirtyChecker<E,V extends java.util.Collection<?>>
public DirtyChecker.DirtyKind getDirtyKind(V initial, V current)
DirtyChecker
getDirtyKind
in interface DirtyChecker<E>
public DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V> getDirtyFlusher(UpdateContext context, java.lang.Object view, java.lang.Object initial, java.lang.Object current)
getDirtyFlusher
in interface DirtyAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,E,V extends java.util.Collection<?>>
protected DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V> determineDirtyFlusherForNewCollection(UpdateContext context, V initial, V current)
protected java.util.List<CollectionAction<java.util.Collection<?>>> determineJpaCollectionActions(UpdateContext context, V initial, V current, AbstractPluralAttributeFlusher.EqualityChecker equalityChecker)
protected final java.util.List<CollectionAction<java.util.Collection<?>>> determineJpaCollectionActionsForSubview(UpdateContext context, V initial, V current)
protected final java.util.List<CollectionAction<java.util.Collection<?>>> determineJpaCollectionActionsForNonSubview(UpdateContext context, V initial, V current, AbstractPluralAttributeFlusher.EqualityChecker equalityChecker)
protected final java.util.List<CollectionAction<java.util.Collection<?>>> determineCollectionActionsForSubview(UpdateContext context, V initial, V current)
protected final java.util.List<CollectionAction<java.util.Collection<?>>> determineCollectionActionsForNonSubview(UpdateContext context, V initial, V current, AbstractPluralAttributeFlusher.EqualityChecker equalityChecker)
protected java.util.List<CollectionAction<java.util.Collection<?>>> determineCollectionActions(UpdateContext context, V initial, V current, AbstractPluralAttributeFlusher.EqualityChecker equalityChecker)
protected final java.util.List<CollectionElementAttributeFlusher<E,V>> getElementFlushers(UpdateContext context, V current)
getElementFlushers
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
protected CollectionAttributeFlusher<E,V> partialFlusher(boolean fetch, AbstractPluralAttributeFlusher.PluralFlushOperation operation, java.util.List<? extends CollectionAction<?>> collectionActions, java.util.List<CollectionElementAttributeFlusher<E,V>> elementFlushers)
partialFlusher
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
protected boolean collectionEquals(V initial, V current)
collectionEquals
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
protected boolean areActionsQueueable(RecordingCollection<?,?> collection)
protected DirtyAttributeFlusher<CollectionAttributeFlusher<E,V>,E,V> getDirtyFlusherForRecordingCollection(UpdateContext context, V initial, RecordingCollection<?,?> collection)
getDirtyFlusherForRecordingCollection
in class AbstractPluralAttributeFlusher<CollectionAttributeFlusher<E,V extends java.util.Collection<?>>,CollectionAction<?>,RecordingCollection<?,?>,E,V extends java.util.Collection<?>>
protected final int getActionUnrelatedDirtyObjectCount(V initial, java.util.List<CollectionElementAttributeFlusher<E,V>> elementFlushers, java.util.List<? extends CollectionAction<?>> actions)
Copyright © 2014–2018 Blazebit. All rights reserved.