package mil.nga.giat.geowave.core.store.callback;
import java.io.Closeable;
import java.io.Flushable;
import java.io.IOException;
import java.util.List;
import mil.nga.giat.geowave.core.store.base.DataStoreEntryInfo;
public class IngestCallbackList<T> implements
IngestCallback<T>,
Flushable,
Closeable
{
private final List<IngestCallback<T>> callbacks;
public IngestCallbackList(
final List<IngestCallback<T>> callbacks ) {
this.callbacks = callbacks;
}
@Override
public void entryIngested(
final DataStoreEntryInfo entryInfo,
final T entry ) {
for (final IngestCallback<T> callback : callbacks) {
callback.entryIngested(
entryInfo,
entry);
}
}
@Override
public void close()
throws IOException {
for (final IngestCallback<T> callback : callbacks) {
if (callback instanceof Closeable) ((Closeable) callback).close();
}
}
@Override
public void flush()
throws IOException {
for (final IngestCallback<T> callback : callbacks) {
if (callback instanceof Flushable) ((Flushable) callback).flush();
}
}
}