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 llenar tablas temporales a utilizar en reportes.
 * 
 * @author Jorge Vaca
 * @version 2.1
 */
public abstract class ReportRule extends AbstractRule {

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

    /**
     * Implementa logica de negocio a invocar para ejecutar comandos que llenan tablas para reportes especiale.
     * 
     * @param pQueryRequest Objeto con datos utilizados en la ejecucion de un reportes.
     * @throws Exception
     */
    public abstract QueryRequest process(QueryRequest pQueryRequest) throws Exception;

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

}
