org.hibernate.search.event.impl
Class FullTextIndexEventListener

java.lang.Object
  extended by org.hibernate.search.event.impl.FullTextIndexEventListener
All Implemented Interfaces:
Serializable, FlushEventListener, PostCollectionRecreateEventListener, PostCollectionRemoveEventListener, PostCollectionUpdateEventListener, PostDeleteEventListener, PostInsertEventListener, PostUpdateEventListener

public class FullTextIndexEventListener
extends Object
implements PostDeleteEventListener, PostInsertEventListener, PostUpdateEventListener, PostCollectionRecreateEventListener, PostCollectionRemoveEventListener, PostCollectionUpdateEventListener, FlushEventListener

This listener supports setting a parent directory for all generated index files. It also supports setting the analyzer class to be used.

Author:
Gavin King, Emmanuel Bernard, Mattias Arbin, Sanne Grinovero, Hardy Ferentschik
See Also:
Serialized Form

Nested Class Summary
static class FullTextIndexEventListener.Installation
           
 
Field Summary
protected  SearchFactoryImplementor searchFactoryImplementor
           
protected  boolean skipDirtyChecks
           
protected  boolean used
           
 
Constructor Summary
FullTextIndexEventListener(FullTextIndexEventListener.Installation installation)
           
 
Method Summary
 void addSynchronization(EventSource eventSource, Synchronization synchronization)
          Adds a synchronization to be performed in the onFlush method; should only be used as workaround for the case a flush is happening out of transaction.
 void cleanup()
           
 String[] getDirtyPropertyNames(PostUpdateEvent event)
           
protected  AbstractDocumentBuilder getDocumentBuilder(Object entity)
          It is not suggested to extend FullTextIndexEventListener, but when needed to implement special use cases implementors might need this method.
 SearchFactoryImplementor getSearchFactoryImplementor()
           
 void initialize(Configuration cfg)
          Initialize method called by Hibernate Core when the SessionFactory starts
 void onFlush(FlushEvent event)
          Make sure the indexes are updated right after the hibernate flush, avoiding object loading during a flush.
 void onPostDelete(PostDeleteEvent event)
           
 void onPostInsert(PostInsertEvent event)
           
 void onPostRecreateCollection(PostCollectionRecreateEvent event)
           
 void onPostRemoveCollection(PostCollectionRemoveEvent event)
           
 void onPostUpdate(PostUpdateEvent event)
           
 void onPostUpdateCollection(PostCollectionUpdateEvent event)
           
protected  void processCollectionEvent(AbstractCollectionEvent event)
           
protected
<T> void
processWork(T entity, Serializable id, WorkType workType, AbstractEvent event, boolean identifierRollbackEnabled)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

used

protected boolean used

skipDirtyChecks

protected boolean skipDirtyChecks

searchFactoryImplementor

protected SearchFactoryImplementor searchFactoryImplementor
Constructor Detail

FullTextIndexEventListener

public FullTextIndexEventListener(FullTextIndexEventListener.Installation installation)
Method Detail

initialize

public void initialize(Configuration cfg)
Initialize method called by Hibernate Core when the SessionFactory starts


getSearchFactoryImplementor

public SearchFactoryImplementor getSearchFactoryImplementor()

onPostDelete

public void onPostDelete(PostDeleteEvent event)
Specified by:
onPostDelete in interface PostDeleteEventListener

onPostInsert

public void onPostInsert(PostInsertEvent event)
Specified by:
onPostInsert in interface PostInsertEventListener

onPostUpdate

public void onPostUpdate(PostUpdateEvent event)
Specified by:
onPostUpdate in interface PostUpdateEventListener

getDirtyPropertyNames

public String[] getDirtyPropertyNames(PostUpdateEvent event)

processWork

protected <T> void processWork(T entity,
                               Serializable id,
                               WorkType workType,
                               AbstractEvent event,
                               boolean identifierRollbackEnabled)

cleanup

public void cleanup()

onPostRecreateCollection

public void onPostRecreateCollection(PostCollectionRecreateEvent event)
Specified by:
onPostRecreateCollection in interface PostCollectionRecreateEventListener

onPostRemoveCollection

public void onPostRemoveCollection(PostCollectionRemoveEvent event)
Specified by:
onPostRemoveCollection in interface PostCollectionRemoveEventListener

onPostUpdateCollection

public void onPostUpdateCollection(PostCollectionUpdateEvent event)
Specified by:
onPostUpdateCollection in interface PostCollectionUpdateEventListener

processCollectionEvent

protected void processCollectionEvent(AbstractCollectionEvent event)

onFlush

public void onFlush(FlushEvent event)
Make sure the indexes are updated right after the hibernate flush, avoiding object loading during a flush. Not needed during transactions.

Specified by:
onFlush in interface FlushEventListener

addSynchronization

public void addSynchronization(EventSource eventSource,
                               Synchronization synchronization)
Adds a synchronization to be performed in the onFlush method; should only be used as workaround for the case a flush is happening out of transaction. Warning: if the synchronization contains a hard reference to the Session proper cleanup is not guaranteed and memory leaks will happen.

Parameters:
eventSource - should be the Session doing the flush
synchronization - the synchronisation instance

getDocumentBuilder

protected AbstractDocumentBuilder getDocumentBuilder(Object entity)
It is not suggested to extend FullTextIndexEventListener, but when needed to implement special use cases implementors might need this method. If you have to extent this, please report your use case so that better long term solutions can be discussed.

Parameters:
entity -
Returns:
the DocumentBuilder for the specified entity


Copyright © 2006-2012 Red Hat Middleware, LLC. All Rights Reserved