package mil.nga.giat.geowave.core.ingest;
import java.util.Collection;
import mil.nga.giat.geowave.core.index.ByteArrayId;
import mil.nga.giat.geowave.core.store.CloseableIterator;
/**
* An interface required for ingest plugins to implement a conversion from an
* expected input format to GeoWave data which can in turn be ingested into the
* system.
*
* @param <I>
* The type for the input data
* @param <O>
* The type that represents each data entry being ingested
*/
public interface IngestPluginBase<I, O> extends
DataAdapterProvider<O>
{
/**
* Convert from an expected input format to a data format that can be
* directly ingested into GeoWave
*
* @param input
* The expected input.
* @param primaryIndexIds
* The set of index IDs specified via a commandline argument
* (this is typically either the default spatial index or default
* spatial-temporal index)
* @param globalVisibility
* If on the command-line the user specifies a global visibility
* to write to the visibility column in GeoWave, it is passed
* along here. It is assumed that this is the same visibility
* string that will be passed to
* DataAdapterProvider.getDataAdapters()
* @return The objects that can be directly ingested into GeoWave
*/
public CloseableIterator<GeoWaveData<O>> toGeoWaveData(
I input,
Collection<ByteArrayId> primaryIndexIds,
String globalVisibility );
}