package gcom.batch.cadastro;
import java.util.Collection;
import java.util.Iterator;
import gcom.cadastro.ControladorCadastroLocal;
import gcom.cadastro.ControladorCadastroLocalHome;
import gcom.micromedicao.Rota;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesJNDI;
import gcom.util.ControladorException;
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 BatchSuspenderImovelEmProgramaEspecialMDB implements
MessageListener, MessageDrivenBean {
private static final long serialVersionUID = 1L;
public BatchSuspenderImovelEmProgramaEspecialMDB() {
super();
}
public void onMessage(Message message) {
if (message instanceof ObjectMessage) {
ObjectMessage objectMessage = (ObjectMessage) message;
try {
Collection colecaoRotas = (Collection) ((Object[]) objectMessage.getObject()) [2];
Iterator iterator = colecaoRotas.iterator();
while(iterator.hasNext()) {
Object[] array = (Object[]) iterator.next();
Rota rota = (Rota) array[1];
this.getControladorCadastro().suspenderImovelEmProgramaEspecialBatch(
(Integer) ((Object[]) objectMessage.getObject())[0],
(Usuario) ((Object[]) objectMessage.getObject())[1],
rota);
}
} catch (JMSException e) {
System.out.println("Erro no MDB");
e.printStackTrace();
} catch (ControladorException e) {
System.out.println("Erro no MDB");
e.printStackTrace();
}
}
}
public void ejbRemove() throws EJBException {
}
public void setMessageDrivenContext(MessageDrivenContext arg0)
throws EJBException {
}
/**
* Retorna a interface remota de ControladorCadastro
*
* @return A interface remota do controlador de par�metro
*/
protected ControladorCadastroLocal getControladorCadastro() {
ControladorCadastroLocalHome localHome = null;
ControladorCadastroLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorCadastroLocalHome) locator
.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_CADASTRO_SEJB);
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() {
}
}