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>ExprArgTransformer interface.</p>
*
* @author icode
*
*/
@Contract
@ConstrainedTo(RuntimeType.SERVER)
public interface ExprArgTransformer<O, V extends QueryExprInvoker> extends Transformer<Transformed<Val<O>>> {
/**
* <p>transform.</p>
*
* @param field a {@link java.lang.String} object.
* @param operator a {@link java.lang.String} object.
* @param arg a {@link ameba.db.dsl.QueryExprMeta.Val} object.
* @param index a int.
* @param count a int.
* @param invoker a V object.
* @param parent a {@link ameba.db.dsl.QueryExprMeta} object.
* @return a {@link ameba.db.dsl.Transformed} object.
*/
Transformed<Val<O>> transform(String field, String operator, Val<O> arg,
int index, int count, V invoker, QueryExprMeta parent);
}