package org.handwerkszeug.riak.mapreduce.grammar;
import java.math.BigDecimal;
import java.math.BigInteger;
import org.handwerkszeug.riak.mapreduce.MapReduceInput;
/**
* @author taichi
*/
public interface InputsProducer<T> {
KeyFilterOrPhase<T> inputs(String bucket);
PhaseProducer<T> inputs(String bucket, String key);
PhaseProducer<T> inputs(String bucket, String key, Object keyData);
PhaseProducer<T> inputs(String bucket, String key, String keyData);
PhaseProducer<T> inputs(String bucket, String key, int keyData);
PhaseProducer<T> inputs(String bucket, String key, long keyData);
PhaseProducer<T> inputs(String bucket, String key, double keyData);
PhaseProducer<T> inputs(String bucket, String key, float keyData);
PhaseProducer<T> inputs(String bucket, String key, BigInteger keyData);
PhaseProducer<T> inputs(String bucket, String key, BigDecimal keyData);
PhaseProducer<T> inputs(MapReduceInput primary, MapReduceInput... inputs);
/**
* @see <a
* href="http://wiki.basho.com/Riak-Search---Querying.html#Querying-Integrated-with-Map-Reduce">Querying
* Integrated with Map/Reduce </a>
* @see <a
* href="https://github.com/basho/riak_search/blob/master/apps/riak_search/src/riak_search.erl">riak_search.erl</a>
*/
PhaseProducer<T> search(String index, String query);
}