package gcom.gui;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Respons�vel por executar a a��o de altera�ao
*
* @author thiago toscano
* @date 21/12/2005
*/
public abstract class ControladorAlteracaoGcomAction extends ControladorGcomAction {
/**
* M�todo que responde pela a��o de exibi��o
*
* @param actionMapping
* @param actionForm
* @param request
* @param response
* @return
* @throws Exception
*/
public final ActionForward exibir(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {
ControladorAlteracaoGcomActionForm form = (ControladorAlteracaoGcomActionForm) actionForm;
String[] chavesPrimarias = form.getChavePrimaria().split(ControladorGcomAction.PARAMETRO_SEPARADO_CHAVE_PRIMARIA);
Object obj = this.consultarObjetoSistema(chavesPrimarias, request, form);
this.montarFormulario(obj, form);
ActionForward forward = this.exibirAuxiliar(actionMapping, actionForm, request, response);
this.carregarColecao(form);
form.setAcao(ControladorGcomAction.PARAMETRO_ACAO_PROCESSAR);
if (forward != null) {
return forward;
}
return actionMapping.findForward(ControladorGcomAction.FORWARD_EXIBIR);
}
/**
* M�todo que responde pela a��o de processamento
*
* @param actionMapping
* @param actionForm
* @param request
* @param response
* @return
* @throws Exception
*/
public final ActionForward processar(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception{
ControladorAlteracaoGcomActionForm form = (ControladorAlteracaoGcomActionForm) actionForm;
Object obj = gerarObject(form,request);
this.atualizarObjeto(obj, request, form);
ActionForward forward = this.processarAuxiliar(actionMapping, actionForm, request, response);
if (forward != null) {
return forward;
}
return actionMapping.findForward(ControladorGcomAction.FORWARD_PROCESSAR);
}
/**
* M�todo que auxiliar ao m�todo exibir
*
* @param actionMapping
* @param actionForm
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward exibirAuxiliar(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {
return null;
}
/**
* M�todo que auxiliar ao m�todo processar
*
* @param actionMapping
* @param actionForm
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward processarAuxiliar(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {
return null;
}
/**
* M�todo que consulta o Objeto no sistema com o array de chaves necessaria
*
* @param chavesPrimarias
* @return
* @throws Exception
*/
public abstract Object consultarObjetoSistema(String[] chavesPrimarias, HttpServletRequest request, ControladorAlteracaoGcomActionForm actionForm) throws Exception;
/**
* M�todo que atualiza o objeto no sistema
*
* @param obj
* @throws Exception
*/
public abstract void atualizarObjeto(Object obj, HttpServletRequest request, ControladorAlteracaoGcomActionForm actionForm) throws Exception;
/**
* M�todo respons�vel por preencher o formulario de apresenta��o a partir do objeto selecionado
*
* @param obj
* @param actionForm
*/
public abstract void montarFormulario(Object obj, ControladorAlteracaoGcomActionForm actionForm) ;
/**
* M�todo que gera o objeto para a manipulacao no sistema
*
* @param actionForm
* @return
*/
public abstract Object gerarObject(ControladorAlteracaoGcomActionForm actionForm, HttpServletRequest request);
/**
* M�todo que carrega a colecao para a apresenta��o dos dados.
*
* @param actionForm
*/
public abstract void carregarColecao(ControladorAlteracaoGcomActionForm actionForm);
}