/** * Forces persistent collection initialization. * * @param event Collection event. * * @return Stored snapshot. */ protected Serializable initializeCollection(AbstractCollectionEvent event) { event.getCollection().forceInitialization(); return event.getCollection().getStoredSnapshot(); }
protected final CollectionEntry getCollectionEntry(AbstractCollectionEvent event) { return event.getSession().getPersistenceContext().getCollectionEntry( event.getCollection() ); }
public void addEvent(AbstractCollectionEvent event, Listener listener) { CollectionEntry collectionEntry = event.getSession() .getPersistenceContext() .getCollectionEntry(event.getCollection()); Serializable snapshot = collectionEntry.getSnapshot(); log.debug("add Event: " + event.getClass() + "; listener = " + listener.getClass() + "; snapshot = " + snapshot); listenersCalled.add(listener); events.add(event); snapshots.add(snapshot); }
protected void checkResult(CollectionListeners listeners, CollectionListeners.Listener listenerExpected, Entity ownerExpected, Collection collExpected, int index) { assertSame( listenerExpected, listeners.getListenersCalled().get( index ) ); assertSame( ownerExpected, ( ( AbstractCollectionEvent ) listeners.getEvents().get( index ) ).getAffectedOwnerOrNull() ); assertEquals( ownerExpected.getId(), ( ( AbstractCollectionEvent ) listeners.getEvents().get( index ) ).getAffectedOwnerIdOrNull() ); assertEquals( ownerExpected.getClass().getName(), ( (AbstractCollectionEvent) listeners.getEvents().get( index ) ).getAffectedOwnerEntityName() ); assertSame( collExpected, ( ( AbstractCollectionEvent ) listeners.getEvents().get( index ) ).getCollection() ); }
/** * Forces persistent collection initialization. * * @param event Collection event. * * @return Stored snapshot. */ protected Serializable initializeCollection(AbstractCollectionEvent event) { event.getCollection().forceInitialization(); return event.getCollection().getStoredSnapshot(); }
protected final CollectionEntry getCollectionEntry(AbstractCollectionEvent event) { return event.getSession().getPersistenceContext().getCollectionEntry( event.getCollection() ); }
protected void processCollectionEvent(AbstractCollectionEvent event) { if ( state.eventsDisabled() ) { return; } Object entity = event.getAffectedOwnerOrNull(); if ( entity == null ) { //Hibernate cannot determine every single time the owner especially in case detached objects are involved // or property-ref is used //Should log really but we don't know if we're interested in this collection for indexing return; } PersistentCollection persistentCollection = event.getCollection(); final String collectionRole; if ( persistentCollection != null ) { collectionRole = persistentCollection.getRole(); } else { collectionRole = null; } AbstractDocumentBuilder documentBuilder = getDocumentBuilder( entity ); if ( documentBuilder != null && documentBuilder.collectionChangeRequiresIndexUpdate( collectionRole ) ) { Serializable id = getId( entity, event ); if ( id == null ) { log.idCannotBeExtracted( event.getAffectedOwnerEntityName() ); return; } processWork( tenantIdentifier( event ), entity, id, WorkType.COLLECTION, event, false ); } }
PojoWorkPlan workPlan = context.getCurrentWorkPlan( event.getSession() ); if ( dirtyCheckingEnabled ) { PersistentCollection persistentCollection = event.getCollection(); String collectionRole = null; if ( persistentCollection != null ) {