package org.handwerkszeug.riak.mapreduce.grammar; import java.math.BigDecimal; import java.math.BigInteger; import org.handwerkszeug.riak.model.Function; /** * @author taichi */ public interface PhaseProducer<T> { ExecutablePhase<T> map(Function phase); ExecutablePhase<T> map(Function phase, Object arg); ExecutablePhase<T> map(Function phase, String arg); ExecutablePhase<T> map(Function phase, int arg); ExecutablePhase<T> map(Function phase, long arg); ExecutablePhase<T> map(Function phase, double arg); ExecutablePhase<T> map(Function phase, float arg); ExecutablePhase<T> map(Function phase, BigInteger arg); ExecutablePhase<T> map(Function phase, BigDecimal arg); ExecutablePhase<T> map(Function phase, boolean keep); ExecutablePhase<T> map(Function phase, Object arg, boolean keep); ExecutablePhase<T> map(Function phase, String arg, boolean keep); ExecutablePhase<T> map(Function phase, int arg, boolean keep); ExecutablePhase<T> map(Function phase, long arg, boolean keep); ExecutablePhase<T> map(Function phase, double arg, boolean keep); ExecutablePhase<T> map(Function phase, float arg, boolean keep); ExecutablePhase<T> map(Function phase, BigInteger arg, boolean keep); ExecutablePhase<T> map(Function phase, BigDecimal arg, boolean keep); ExecutablePhase<T> reduce(Function phase); ExecutablePhase<T> reduce(Function phase, Object arg); ExecutablePhase<T> reduce(Function phase, String arg); ExecutablePhase<T> reduce(Function phase, int arg); ExecutablePhase<T> reduce(Function phase, long arg); ExecutablePhase<T> reduce(Function phase, double arg); ExecutablePhase<T> reduce(Function phase, float arg); ExecutablePhase<T> reduce(Function phase, BigInteger arg); ExecutablePhase<T> reduce(Function phase, BigDecimal arg); ExecutablePhase<T> reduce(Function phase, boolean keep); ExecutablePhase<T> reduce(Function phase, Object arg, boolean keep); ExecutablePhase<T> reduce(Function phase, String arg, boolean keep); ExecutablePhase<T> reduce(Function phase, int arg, boolean keep); ExecutablePhase<T> reduce(Function phase, long arg, boolean keep); ExecutablePhase<T> reduce(Function phase, double arg, boolean keep); ExecutablePhase<T> reduce(Function phase, float arg, boolean keep); ExecutablePhase<T> reduce(Function phase, BigInteger arg, boolean keep); ExecutablePhase<T> reduce(Function phase, BigDecimal arg, boolean keep); ExecutablePhase<T> link(String bucket); ExecutablePhase<T> link(String bucket, String tag); ExecutablePhase<T> link(String bucket, boolean keep); ExecutablePhase<T> link(String bucket, String tag, boolean keep); }