package er.neo4jadaptor.query.neo4j_eval.retrievers;
import java.util.Iterator;
import er.neo4jadaptor.query.neo4j_eval.HasCost;
/**
* For an object retrieves a value being a set of objects of some type. In other words it's a function (in mathematical terms) f:Arg -> {x:Value} (result is a set!).
* It is allowed to return an empty set.
*
* @author Jedrzej Sobanski
*
* @param <Arg> argument type
* @param <Value> type of values in returned set
*/
public interface Retriever<Arg, Value> extends HasCost {
/**
* @param arg
* @return set of values retrieved from the given argument
*/
public Iterator<Value> retrieve(Arg arg);
}