Class BoundedNewsSet

java.lang.Object
  |
  +--BoundedNewsSet

public class BoundedNewsSet
extends java.lang.Object
implements News

Implementa l'insieme di news postate su un RM mediante un oggetto compatibile con l'interfaccia java.util.Set. L'insieme accetta un numero massimo di news. Raggiunto tale limite ulteriori post sono scartati senza sollevare eccezioni.

Author:
Mauro Barbieri

Field Summary
 int MAX
          Numero massimo di news che sono accettate.
private  java.util.Set nset
          L'insieme di news di un RM e' implementato mediante un oggetto compatibile con l'interfaccia java.util.Set.
 
Constructor Summary
BoundedNewsSet(int max)
          Crea un'istanza di BoundedNewsSet con limite massimo di news fissato.
 
Method Summary
 java.util.List getList()
          Restituisce una lista di intestazioni dei messaggi postati sul RM.
 Messaggio getMsg(MsgHeader mh)
          Restituisce un messaggio postato in precedenza nel RM data la sua intestazione.
 MsgBody getMsgBody(MsgHeader mh)
          Restituisce il corpo di un messaggio postato in precedenza nel RM data la sua intestazione.
 void putMsg(Messaggio msg)
          Memorizza un messaggio postato da un FE.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

nset

private java.util.Set nset
L'insieme di news di un RM e' implementato mediante un oggetto compatibile con l'interfaccia java.util.Set. L'implementazione scelta e' un java.util.HashSet sincronizzato per garantire accesso in mutua esclusione ai vari thread del RM.

MAX

public int MAX
Numero massimo di news che sono accettate.
Constructor Detail

BoundedNewsSet

public BoundedNewsSet(int max)
Crea un'istanza di BoundedNewsSet con limite massimo di news fissato.
Method Detail

putMsg

public void putMsg(Messaggio msg)
            throws java.lang.Exception
Memorizza un messaggio postato da un FE. Se e' gia' stato raggiunto il numero massimo di posting consentiti il messaggio non e' aggiunto all'insieme e non viene nemmeno sollevata un'eccezione.
Specified by:
putMsg in interface News
Parameters:
msg - messaggio postato dal FE.
Throws:
java.lang.Exception - se non e' stato possibile memorizzare il messaggio.

getMsg

public Messaggio getMsg(MsgHeader mh)
                 throws java.lang.Exception
Restituisce un messaggio postato in precedenza nel RM data la sua intestazione. Se non esiste nessun messaggio con l'intestazione data per argomento e' generata una MsgNotFoundException.
Specified by:
getMsg in interface News
Parameters:
mh - header del messaggio che si vuole ottenere.
Returns:
il messaggio postato in precedenza il cui header e' uguale a quello passato come argomento.
Throws:
MsgNotFoundException - se non esiste nessun messaggio con l'intestazione data per argomento.

getMsgBody

public MsgBody getMsgBody(MsgHeader mh)
                   throws java.lang.Exception
Restituisce il corpo di un messaggio postato in precedenza nel RM data la sua intestazione. Se non esiste nessun messaggio con l'intestazione data per argomento e' generata una MsgNotFoundException.
Specified by:
getMsgBody in interface News
Parameters:
mh - header del messaggio che si vuole ottenere.
Returns:
il corpo del messaggio postato in precedenza il cui header e' uguale a quello passato come argomento.
Throws:
MsgNotFoundException - se non esiste nessun messaggio con l'intestazione data per argomento.

getList

public java.util.List getList()
                       throws java.lang.Exception
Restituisce una lista di intestazioni dei messaggi postati sul RM.
Specified by:
getList in interface News
Returns:
una lista di intestazioni dei messaggi postati sul RM.
Throws:
java.lang.Exception - se non e' stato possibile recuperare la lista di intestazioni.