package ameba.db.dsl; import ameba.db.dsl.QueryExprMeta.Val; import org.glassfish.jersey.spi.Contract; import javax.ws.rs.ConstrainedTo; import javax.ws.rs.RuntimeType; /** * <p>ExprTransformer interface.</p> * * @author icode * */ @Contract @ConstrainedTo(RuntimeType.SERVER) public interface ExprTransformer<T, V extends QueryExprInvoker> extends Transformer<Transformed<Val<T>>> { /** * <p>transform.</p> * * @param field a {@link java.lang.String} object. * @param operator a {@link java.lang.String} object. * @param arg an array of {@link ameba.db.dsl.QueryExprMeta.Val} objects. * @param invoker a V object. * @param parent a {@link ameba.db.dsl.QueryExprMeta} object. * @return a {@link ameba.db.dsl.Transformed} object. */ Transformed<Val<T>> transform(String field, String operator, Val<T>[] arg, V invoker, QueryExprMeta parent); }