package proj.zoie.hourglass.impl; import java.util.List; import org.apache.lucene.index.IndexReader; import proj.zoie.api.Zoie; import proj.zoie.api.ZoieMultiReader; public class CompositeHourglassListener<R extends IndexReader, D> implements HourglassListener<R, D> { private final List<HourglassListener<R,D>> listeners; public CompositeHourglassListener(List<HourglassListener<R, D>> hourglassListeners) { this.listeners = hourglassListeners; } @Override public void onNewZoie(Zoie<R, D> zoie) { for (HourglassListener<R, D> listener : listeners) { if (zoie != null) listener.onNewZoie(zoie); } } @Override public void onRetiredZoie(Zoie<R, D> zoie) { for (HourglassListener<R, D> listener : listeners) { if (zoie != null) listener.onRetiredZoie(zoie); } } @Override public void onIndexReaderCleanUp(ZoieMultiReader<R> indexReader) { for (HourglassListener<R, D> listener : listeners) { if (indexReader != null) listener.onIndexReaderCleanUp(indexReader); } } }