package com.fp.dto.rules;

import com.fp.dto.Request;
import com.fp.dto.query.QueryRequest;

/**
 * Clase a extender por las clases que se encargan de ejecutar consultas especiales.
 * 
 * @author Jorge Vaca
 * @version 2.1
 * 
 */
public abstract class QueryRule extends AbstractRule {

    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1L;

    /**
     * Implementa logica de negocio a invocar para ejecutar consultas especiales.
     * 
     * @param pQueryRequest Objeto con beans utilizados en el proceso de consulta.
     * @throws Exception
     */
    public abstract QueryRequest process(QueryRequest pQueryRequest) throws Exception;

    @Override
    public Request execute(Request pRequest) throws Exception {
        return this.process((QueryRequest) pRequest);
    }

}
