org.zlatan.sms
Class SmsController

java.lang.Object
  extended byorg.zlatan.sms.SmsController

public class SmsController
extends java.lang.Object

Classe che implementa il server del modulo IBRA per la ricezione di ordini di acquisto via SMS. La configurazione del server deve risiedere in un file smscontroller-config.xml presente nella stessa directory nella quale viene lanciata l'applicazione.
Il server si collega con PrepareRequestDispatcher per inviare il messaggio JMS contenente l'ordine di acquisto, utilizzando un proxy di tipo PurchaseOrderSender.

See Also:
PurchaseOrderSender, PrepareRequestDispatcher, MobilePhoneConnection

Constructor Summary
SmsController(int seconds, java.lang.String portName, java.lang.String connFact, java.lang.String destName)
          Costruttore.
 
Method Summary
static void main(java.lang.String[] args)
          Il metodo che lancia il server.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SmsController

public SmsController(int seconds,
                     java.lang.String portName,
                     java.lang.String connFact,
                     java.lang.String destName)
Costruttore. Ha un funzionamento del tutto simile al costruttore di Pop3Controller.
Crea un nuovo oggetto di tipo interno SmsControllerThread e ne schedula l'esecuzione ogni seconds secondi.
Il timer effettua la scansione della casella SMS utilizzando una MobilePhoneConnection, controlla se sono presenti nuovi messaggi contenenti ordini di acquisto ed eventualmente li processa, creando un PurchaseOrderType ed inviandolo via JMS al PrepareRequestDispatcher.
Un messaggio SMS deve iniziare con i due caratteri PO per essere riconosciuto; deve quindi contenere uno o più codici materiali e quantità di ordine (parola chiave material) e può contenere il partnerNumber ed un purchaseOrderNumber.
Il PurchaseOrderType in uscita conterrà il valore sms nel campo protocol ed il numero di telefono mittente nel campo from. Se non viene specificato il purchaseOrderType nel messaggio, questo viene settato pari al numero telefonico del mittente concatenato ad un intero generato sulla base dell'istante corrente.
Gli ultimi due parametri del costruttore vengono utilizzati per la creazione di un PurchaseOrderSender.

Parameters:
seconds - l'intervallo di schedulazione del timer
portName - il nome della porta seriale alla quale è collegato il cellulare
connFact - il nome JNDI della ConnectionFactory da utilizzare per spedire i messaggi JMS
destName - il nome JNDI della coda JMS su cui spedire i messaggi
See Also:
PurchaseOrderSender, MobilePhoneConnection
Method Detail

main

public static void main(java.lang.String[] args)
Il metodo che lancia il server. Non richiede argomenti ma è richiesta la presenza del file smscontroller-config.xml per l'inizializzazione e la configurazione.

See Also:
ConfigFile