*/
public class MassIndexerProgressMonitorWrapper implements MassIndexerProgressMonitor {
- MassIndexerProgressMonitor massIndexerMonitor = new SimpleIndexingProgressMonitor();
+ MassIndexerProgressMonitor massIndexerMonitor ;
private final IProgressMonitor monitor;
+ private final int batchSize;
+ private long tickCount = 0;
public IProgressMonitor monitor() {
return monitor;
/**
* @param monitor
*/
- public MassIndexerProgressMonitorWrapper(IProgressMonitor monitor) {
+ public MassIndexerProgressMonitorWrapper(IProgressMonitor monitor, int batchSize) {
this.monitor = monitor;
+ this.batchSize = batchSize;
+ this.massIndexerMonitor = new SimpleIndexingProgressMonitor(batchSize);
}
/**
public void documentsAdded(long increment) {
// all current implementations always pass 1l as parameter
massIndexerMonitor.documentsAdded(increment);
- monitor.worked((int)increment);
+ updatePerBatchMonitor((int)increment);
}
+ /**
+ * @param increment
+ *
+ */
+ private void updatePerBatchMonitor(int increment) {
+ tickCount += increment;
+ if(tickCount % (batchSize * 2) == 0) {
+ // one batch worked
+ monitor.worked(1);
+ }
+ }
/**
* {@inheritDoc}
public void documentsBuilt(int number) {
// unused as of implementing this
massIndexerMonitor.documentsBuilt(number);
-
+ updatePerBatchMonitor(number);
}
/**