package mil.nga.giat.geowave.analytic.nn;
import java.util.Map.Entry;
import mil.nga.giat.geowave.core.index.ByteArrayId;
public interface NeighborList<NNTYPE> extends
Iterable<Entry<ByteArrayId, NNTYPE>>
{
public enum InferType {
NONE,
SKIP, // distance measure is skipped
REMOVE // skipped and removed from future selection
};
/**
* May be called prior to init() when discovered by entry itself.
*
* @param entry
* @return
*/
public boolean add(
DistanceProfile<?> distanceProfile,
ByteArrayId id,
NNTYPE value );
/**
* See if the entries relationships have already been inferred
*
* @param entry
* @return
*/
public InferType infer(
final ByteArrayId id,
final NNTYPE value );
/**
* Clear the contents.
*/
public void clear();
public int size();
public boolean isEmpty();
}