ssbm.net.client
Class ClientEndpoint

java.lang.Object
  extended by ssbm.net.client.ClientEndpoint

public class ClientEndpoint
extends java.lang.Object

Questa classe gestisce la connessione con il server, in particolare:

Author:
Salvatore Piccione

Field Summary
private static java.lang.String expectedResultCodeRegex
          L'espressione regolare relativa ai codici degli esiti attesi.
private static java.nio.channels.SocketChannel netChannel
          Il canale socket usato per lo scambio di messaggi con il server.
private static TLSConnection tlsConnection
          La connessione TLS verso il server.
 
Constructor Summary
ClientEndpoint()
           
 
Method Summary
private static void checkConnection()
          Controlla lo stato della connessione TLS al server: se la connessione non è stata stabilita, provvede alla sua definizione; se la connessione è chiusa, provvede alla sua riapertura.
private static java.lang.Object handleReply(java.lang.String replyMessage, java.lang.String resultCodeMessage)
          Gestisce il messaggio di risposta ricevuto dal server, restituendo gli eventuali dati contenuti in tale messaggio o lanciando un'eccezione.
private static void openNetChannel()
          Apre il canale socket verso il server.
static void requestService(DataContainer dataTable, Services service)
          Invia al server un messaggio di testo contenente i dati presenti dataTable e che richiede l’esecuzione del servizio service; restituisce gli eventuali dati ottenuti dall’esecuzione del servizio.
static java.lang.Object requestService(DataContainer dataTable, Services service, Entities entity)
          Invia al server un messaggio di testo contenente i dati presenti dataTable e che richiede l’esecuzione del servizio service rispetto all’entità entity; restituisce gli eventuali dati ottenuti dall’esecuzione del servizio.
static void requestService(DataContainersList dataTablesList, Services service, Entities entity)
          Invia al server un messaggio di testo contenente i dati presenti dataTablesList e che richiede l’esecuzione del servizio service rispetto all’entità entity; restituisce gli eventuali dati ottenuti dall’esecuzione del servizio.
private static java.lang.String setExpectedResultCodeRegex(Services service, Entities entity)
          Imposta l'espressione regolare relativa ai codici che denotano un esito positivo dell'esecuzione del servizio service relativo all'entità entity.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

expectedResultCodeRegex

private static java.lang.String expectedResultCodeRegex
L'espressione regolare relativa ai codici degli esiti attesi.


tlsConnection

private static TLSConnection tlsConnection
La connessione TLS verso il server.


netChannel

private static java.nio.channels.SocketChannel netChannel
Il canale socket usato per lo scambio di messaggi con il server.

Constructor Detail

ClientEndpoint

public ClientEndpoint()
Method Detail

requestService

public static java.lang.Object requestService(DataContainer dataTable,
                                              Services service,
                                              Entities entity)
                                       throws java.lang.Exception
Invia al server un messaggio di testo contenente i dati presenti dataTable e che richiede l’esecuzione del servizio service rispetto all’entità entity; restituisce gli eventuali dati ottenuti dall’esecuzione del servizio.
Lancia un eccezione nel caso in cui sia stato ricevuto un messaggio che comunica un errore o un esito diverso da quello atteso.

Parameters:
dataTable - l'istanza di DataContainer contenente i dati da inserire nel messaggio di richiesta del servizio.
service - il valore dell'enumerazione Services che denota il servizio richiesto.
entity - il valore dell'enumerazione Entities che denota l'entità di riferimento.
Returns:
uno dei seguenti oggetti:
  • un esemplare di DataContainer contenente i dati ottenuti dall'esecuzione del servizio richiesto;
  • un esemplare di DataContainersList contenente i dati ottenuti dall'esecuzione del servizio richiesto;
  • null se l'esecuzione del servizio non ha prodotto alcun dato.
Throws:
java.lang.Exception - se si verifica una delle seguenti condizioni:
  • errore nella comunicazione con il server;
  • il messaggio di risposta comunica un esito diverso da quello atteso;
  • il messaggio di risposta del server comunica un errore attraverso un esemplare di NetException o di ServerException.

requestService

public static void requestService(DataContainer dataTable,
                                  Services service)
                           throws java.lang.Exception
Invia al server un messaggio di testo contenente i dati presenti dataTable e che richiede l’esecuzione del servizio service; restituisce gli eventuali dati ottenuti dall’esecuzione del servizio.
Lancia un eccezione nel caso in cui sia stato ricevuto un messaggio che comunica un errore o un esito diverso da quello atteso.

Parameters:
dataTable - l'istanza di DataContainer contenente i dati da inserire nel messaggio di richiesta del servizio.
service - il valore dell'enumerazione Services che denota il servizio richiesto.
Throws:
java.lang.Exception - se si verifica una delle seguenti condizioni:
  • errore nella comunicazione con il server;
  • il messaggio di risposta comunica un esito diverso da quello atteso;
  • il messaggio di risposta del server comunica un errore attraverso un esemplare di NetException o di ServerException.

requestService

public static void requestService(DataContainersList dataTablesList,
                                  Services service,
                                  Entities entity)
                           throws java.lang.Exception
Invia al server un messaggio di testo contenente i dati presenti dataTablesList e che richiede l’esecuzione del servizio service rispetto all’entità entity; restituisce gli eventuali dati ottenuti dall’esecuzione del servizio.
Lancia un eccezione nel caso in cui sia stato ricevuto un messaggio che comunica un errore o un esito diverso da quello atteso.

Parameters:
dataTablesList - l'istanza di DataContainersList contenente i dati da inserire nel messaggio di richiesta del servizio.
service - il valore dell'enumerazione Services che denota il servizio richiesto.
entity - il valore dell'enumerazione Entities che denota l'entità di riferimento.
Throws:
java.lang.Exception - se si verifica una delle seguenti condizioni:
  • errore nella comunicazione con il server;
  • il messaggio di risposta comunica un esito diverso da quello atteso;
  • il messaggio di risposta del server comunica un errore attraverso un esemplare di NetException o di ServerException.

handleReply

private static java.lang.Object handleReply(java.lang.String replyMessage,
                                            java.lang.String resultCodeMessage)
                                     throws java.lang.Exception
Gestisce il messaggio di risposta ricevuto dal server, restituendo gli eventuali dati contenuti in tale messaggio o lanciando un'eccezione.

Parameters:
replyMessage - il messaggio di risposta del server.
resultCodeMessage - il messaggio da visualizzare nel caso in cui il codice dell'esito non sia quello atteso.
Returns:
uno dei seguenti oggetti:
  • un esemplare di DataContainer contenente i dati ottenuti dall'esecuzione del servizio richiesto;
  • un esemplare di DataContainersList contenente i dati ottenuti dall'esecuzione del servizio richiesto;
  • null se l'esecuzione del servizio non ha prodotto alcun dato.
Throws:
java.lang.Exception - se si verifica una delle seguenti condizioni:
  • errore nell'analisi del messaggio di risposta;
  • il messaggio di risposta comunica un esito diverso da quello atteso;
  • il messaggio di risposta del server comunica un errore attraverso un esemplare di NetException o di ServerException.

checkConnection

private static void checkConnection()
                             throws NetException,
                                    SSBMSecurityException
Controlla lo stato della connessione TLS al server:

Throws:
NetException - se si verificano degli errori nell'apertura del canale socket.
SSBMSecurityException - se si verificano problemi nell'apertura della connessione TLS.
See Also:
openNetChannel()

openNetChannel

private static void openNetChannel()
                            throws NetException
Apre il canale socket verso il server.

Throws:
NetException - se si verificano dei problemi nell'apertura del canale socket.

setExpectedResultCodeRegex

private static java.lang.String setExpectedResultCodeRegex(Services service,
                                                           Entities entity)
Imposta l'espressione regolare relativa ai codici che denotano un esito positivo dell'esecuzione del servizio service relativo all'entità entity.

Parameters:
service - il valore dell'enumerazione Services che denota il servizio di riferimento.
entity - il valore dell'enumerazione Entities che denota l'entità di riferimento oppure null se non c'è un'entità di riferimento.
Returns:
il messaggio da visualizzare nel caso in cui il codice dell'esito non sia quello atteso.