package org.handwerkszeug.riak.mapreduce.internal; import java.math.BigDecimal; import java.math.BigInteger; import org.handwerkszeug.riak.mapreduce.MapReduceKeyFilter; import org.handwerkszeug.riak.mapreduce.grammar.ExecutablePhase; import org.handwerkszeug.riak.mapreduce.grammar.KeyFilterOrPhase; import org.handwerkszeug.riak.model.Function; /** * @author taichi */ public class KeyFilterOrPhaseImpl<T> implements KeyFilterOrPhase<T> { protected MapReduceQueryContext<T> context; protected ExecutablePhase<T> delegate; public KeyFilterOrPhaseImpl(MapReduceQueryContext<T> context, ExecutablePhase<T> delegate) { this.context = context; this.delegate = delegate; } @Override public KeyFilterOrPhase<T> keyFilters(MapReduceKeyFilter primary, MapReduceKeyFilter... filters) { this.context.add(primary, filters); return this; } @Override public ExecutablePhase<T> map(Function phase) { this.context.freezeKeyFilters(); return this.delegate.map(phase); } @Override public ExecutablePhase<T> map(Function phase, Object arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, String arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, int arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, long arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, double arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, float arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, BigInteger arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, BigDecimal arg) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg); } @Override public ExecutablePhase<T> map(Function phase, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, keep); } @Override public ExecutablePhase<T> map(Function phase, Object arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> map(Function phase, String arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> map(Function phase, int arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> map(Function phase, long arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> map(Function phase, double arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> map(Function phase, float arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> map(Function phase, BigInteger arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> map(Function phase, BigDecimal arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.map(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase); } @Override public ExecutablePhase<T> reduce(Function phase, Object arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, String arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, int arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, long arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, double arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, float arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, BigInteger arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, BigDecimal arg) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg); } @Override public ExecutablePhase<T> reduce(Function phase, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, keep); } @Override public ExecutablePhase<T> reduce(Function phase, Object arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase, String arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase, int arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase, long arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase, double arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase, float arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase, BigInteger arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> reduce(Function phase, BigDecimal arg, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.reduce(phase, arg, keep); } @Override public ExecutablePhase<T> link(String bucket) { this.context.freezeKeyFilters(); return this.delegate.link(bucket); } @Override public ExecutablePhase<T> link(String bucket, String tag) { this.context.freezeKeyFilters(); return this.delegate.link(bucket, tag); } @Override public ExecutablePhase<T> link(String bucket, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.link(bucket, keep); } @Override public ExecutablePhase<T> link(String bucket, String tag, boolean keep) { this.context.freezeKeyFilters(); return this.delegate.link(bucket, tag, keep); } }