package client; import java.util.Map; import javax.jms.JMSException; import obj.TipoFlusso; import proxy.jms.MessageHandler; import xml.*; import base.ProtectionManager; public class ClientIBAsincSender { private XMLGeneratorIF generator; private String[] tracciati; public ClientIBAsincSender(XMLGeneratorIF generator) { this.generator = generator; } /** * @param args * * ATTIVAZIONE * args[0] tipo flusso: ATTIVAZIONE * args[1] Numero richieste * args[2] Pre post pagato: PRP,POP,MISTO * args[3] DONATING: WIND,OPIV,H3GI,MISTO, TIMG (per RV) * args[4] accodata: ACCODATA, NO_ACCODATA * args[5] prefisso: NULL, prefisso * args[6] telefono: NULL, telefono * args[7] iccid: NULL, iccid * * VALIDAZIONE * args[0] tipo flusso: VALIDAZIONE * args[1] esito: ACCETTATA, RIFIUTATA * args[2] causale: 1,...,13,NULL * args[3] tipo processo: D (donor standard), V (donor virtuale) * args[4] id richiesta: NULL, id richiesta * @throws Exception * * RISPOSTA DI CESSAZIONE/ATTIVAZIONE * (da usare se fallisce la risposta automatica mediante * IBConnector) * args[0] tipo flusso: RISP_CESSAZIONE || RISP_ATTIVAZIONE * args[1] esito: 001||002||003 * args[2] tipo processo: D (donor) se [tipo flusso]=RISP_CESSAZIONE, * R(recipient) o W (recipient virtuale) se [tipo flusso]=RISP_ATTIVAZIONE * C cessazione * P Proting terze Parte * * * NOTIFICA DI CESSAZIONE / ATTIVAZIONE * args[0] tipo flusso: NOT_CESSAZIONE || NOT_ATTIVAZIONE * args[1] esito: 081 (Cessazione Rec Virtuale) se args[0] NOT_CESSAZIONE, * 082 (Cessazione Donor Virtuale) se args[0] NOT_CESSAZIONE, * 083 (Attivazione Donor Virtuale) se args[0] NOT_ATTIVAZIONE * args[2] id richiesta: non obbligatoria, se non presente sono * considerate tutte le richieste possibili * * * UPDATE DCO MVNO DONOR Prjhoc * args[0] tipo flusso: UPDATEDCO * args[1] nuova DCO (AAAAMMGG) */ public static void main(String args[]) throws Exception { ProtectionManager.check(); ClientIBAsincSender sender=null; if (args.length == 0){ throw new IllegalArgumentException("Numero parametri errati!"); } else if (args[0].equals(TipoFlusso.ATTIVAZIONE)) { sender = new ClientIBAsincSender(new XMLMvnoPortingInGenerator()); } else if (args[0].equals(TipoFlusso.VALIDAZIONE)) { sender = new ClientIBAsincSender(new XMLMvnoValGenerator()); } else if (args[0].equals(TipoFlusso.RISP_CESSAZIONE) || args[0].equals(TipoFlusso.RISP_ATTIVAZIONE)) { sender = new ClientIBAsincSender(new XMLGispResponseGenerator()); } else if (args[0].equals(TipoFlusso.NOT_CESSAZIONE) || args[0].equals(TipoFlusso.NOT_ATTIVAZIONE)) { sender = new ClientIBAsincSender(new XMLGispNotificationGenerator()); } else if (args[0].equals(TipoFlusso.NOTIFICA_MVNO_TC)) { sender = new ClientIBAsincSender(new XMLMvnoNotificaTcGenerator()); } else if (args[0].equals(TipoFlusso.NOTIFICA_MSP_TC)) { sender = new ClientIBAsincSender(new XMLNotificaMspTcGenerator()); } else if (args[0].equals(TipoFlusso.NOTIFICA_MSPCOOP_TC)) { sender = new ClientIBAsincSender(new XMLNotificaMspCoopTcGenerator()); } else if (args[0].equals(TipoFlusso.UPDATEDCO_MVNO)) { sender = new ClientIBAsincSender(new XMLMvnoUpdateDCOGenerator()); } else throw new IllegalArgumentException("Tipo Flusso errato: " + args[0]); sender.setTracciati(sender.getGenerator().generateXml(args)); String tipoFlusso = args[0]; sender.sendXML(tipoFlusso); } private void sendXML(String tipoFlusso) throws Exception { Map params = MessageHandler.getParams(tipoFlusso); if (tracciati.length==0) { System.out.println("Nessun flusso di " +tipoFlusso+ " da inviare"); return; } for (int i = 0; i < tracciati.length; i++) { System.out.println(tracciati[i]); try { MessageHandler.getInstance().sendMessage(tracciati[i], (String) params.get(MessageHandler.QUEUE_NAME), (String) params.get(MessageHandler.ID_SYSTEM), (String) params.get(MessageHandler.ID_SERVICE)); this.getGenerator().postGenerate(); } catch (JMSException je) { je.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } /** * @return the generator */ public XMLGeneratorIF getGenerator() { return generator; } /** * @return the tracciati */ public String[] getTracciati() { return tracciati; } /** * @param tracciati the tracciati to set */ public void setTracciati(String[] tracciati) { this.tracciati = tracciati; } }