import org.simantics.db.exception.DatabaseException;
import org.simantics.db.indexing.internal.IndexingJob;
import org.simantics.db.layer0.adapter.GenericRelation;
+import org.simantics.db.layer0.genericrelation.IndexException;
import org.simantics.db.request.Read;
import org.simantics.db.service.CollectionSupport;
import org.simantics.db.service.SerialisationSupport;
this.state = State.READY;
}
+ public State state() {
+ return state;
+ }
+
protected boolean checkState(State state) {
return this.state == state;
}
- protected void assertState(State state) throws AssertionError {
-
- if(this.state != state) throw new AssertionError("Illegal state, expected " + state.name() + " but was in " + this.state.name());
-
+ protected void assertState(State state) throws IndexException {
+ State s = this.state;
+ if (s != state)
+ throw new IndexException("Illegal index searcher state, expected " + state.name() + " but state was " + s.name());
}
public void changeState(IProgressMonitor monitor, Session session, State state) {
mon.subTask("Erasing previous index");
if (getLogger().isDebugEnabled())
getLogger().debug("Erasing previous index {}", indexPath.toAbsolutePath());
- FileUtils.delete(indexPath);
+ FileUtils.emptyDirectory(indexPath);
}
}
}
boolean isIndexAvailable() {
- return (Files.exists(indexPath) && Files.isDirectory(indexPath));
+ return Files.isDirectory(indexPath);
}
-
+
abstract Throwable bestEffortClear(IProgressMonitor monitor, Session session);
/*