package gcom.arrecadacao; import java.util.Collection; import java.util.Map; import gcom.arrecadacao.banco.Banco; import gcom.arrecadacao.debitoautomatico.DebitoAutomaticoMovimento; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesJNDI; import gcom.util.ControladorException; import gcom.util.MetodosBatch; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.MessageDrivenBean; import javax.ejb.MessageDrivenContext; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.ObjectMessage; public class ControladorBatchArrecadacao implements MessageDrivenBean, MessageListener { private static final long serialVersionUID = 1L; public ControladorBatchArrecadacao() { super(); } public void setMessageDrivenContext(MessageDrivenContext ctx) throws EJBException { } public void ejbRemove() throws EJBException { } public void onMessage(Message message) { if (message instanceof ObjectMessage) { ObjectMessage objectMessage = (ObjectMessage) message; try { switch (objectMessage.getIntProperty("nomeMetodo")) { case (MetodosBatch.REGISTRAR_MOVIMENTOS_ARRECADADORES) : { this .getControladorArrecadacao() .registrarMovimentoArrecadadores( (StringBuilder) ((Object[]) objectMessage .getObject())[0], (Short) ((Object[]) objectMessage .getObject())[1], (String) ((Object[]) objectMessage .getObject())[2], (String) ((Object[]) objectMessage .getObject())[3], (Integer) ((Object[]) objectMessage .getObject())[4], (Usuario) ((Object[]) objectMessage .getObject())[5], (Integer) ((Object[]) objectMessage .getObject())[6], (ArrecadadorContrato) ((Object[]) objectMessage .getObject())[7] ); break; } case (MetodosBatch.GERAR_MOVIMENTO_DEBITO_AUTOMATICO_BANCO) : { this .getControladorArrecadacao() .gerarMovimentoDebitoAutomaticoBanco( (Map<Banco, Collection<DebitoAutomaticoMovimento>>) ((Object[]) objectMessage .getObject())[0], (Usuario) ((Object[]) objectMessage .getObject())[1]); break; } case (MetodosBatch.REGERAR_MOVIMENTO_DEBITO_AUTOMATICO_BANCO) : { this .getControladorArrecadacao() .regerarArquivoTxtMovimentoDebitoAutomatico( (ArrecadadorMovimento) ((Object[]) objectMessage .getObject())[0], (String) ((Object[]) objectMessage .getObject())[1], (Usuario) ((Object[]) objectMessage .getObject())[2]); break; } case (MetodosBatch.GERAR_RELATORIO_ACOMPANHAMENTO_MOVIMENTO_ARRECADADORES) : { this .getControladorArrecadacao() .gerarResumoAcompanhamentoMovimentoArrecadadores( (Usuario) ((Object[]) objectMessage .getObject())[0], (String) ((Object[]) objectMessage .getObject())[1], (Arrecadador) ((Object[]) objectMessage .getObject())[2], (ArrecadacaoForma) ((Object[]) objectMessage .getObject())[3]); break; } } } catch (JMSException e) { System.out.println("Erro no MDB"); e.printStackTrace(); } catch (ControladorException e) { System.out.println("Erro no MDB"); e.printStackTrace(); } } } private ControladorArrecadacaoLocal getControladorArrecadacao() { ControladorArrecadacaoLocalHome localHome = null; ControladorArrecadacaoLocal local = null; // pega a inst�ncia do ServiceLocator. ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorArrecadacaoLocalHome) locator .getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_ARRECADACAO_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Default create method * * @throws CreateException */ public void ejbCreate() { } }