org.qi4j.index.sql.support.common
Interface ReindexingStrategy

All Known Subinterfaces:
ReindexingStrategy.ReindexingStrategyService
All Known Implementing Classes:
ReindexingStrategy.AlwaysNeed, ReindexingStrategy.NeedOnChange, ReindexingStrategy.NeverNeed

public interface ReindexingStrategy

Service to decide when complete re-indexing is needed, along with default implementations. TODO maybe add void beganReindexing() and void finishedReindexing() methods? For example, for UI interaction. You can decide your application's re-indexing policy for example like this: mainModule.addServices(ReindexingStrategy.ReindexingStrategyService.class).withMixins(ReindexingStrategy.AlwaysNeed.class);. This way your application will always re-build all index data at startup.


Nested Class Summary
static class ReindexingStrategy.AlwaysNeed
          The re-indexing strategy which ALWAYS re-indexes everything.
static class ReindexingStrategy.NeedOnChange
          The re-indexing strategy, which re-indexes everything when application version changes.
static class ReindexingStrategy.NeverNeed
          The re-indexing strategy which NEVER re-indexes anything.
static interface ReindexingStrategy.ReindexingStrategyService
          Define no mixins - let the application take care of that with ServiceDeclaration.withMixins(Class...) method.
 
Method Summary
 Boolean reindexingNeeded(String dbAppVersion, String currentAppVersion)
           
 

Method Detail

reindexingNeeded

Boolean reindexingNeeded(String dbAppVersion,
                         String currentAppVersion)