View Javadoc

1   package paolomind.multitalk.netmessage;
2   
3   import java.io.Serializable;
4   
5   /**
6    * Interfaccia di un singolo messaggio. Lo stato di ogni Info aggiunto al
7    * messaggio deve essere rappresentabile con una stringa, perchè questa classe
8    * deve essere serializata come una stringa
9    *
10   * @author paolo
11   */
12  public interface IMessage extends Serializable {
13  
14    /**
15     * Restituisce e rimuove la prima infos del messaggio.
16     * @return la prima info del messaggio
17     */
18    Object getInfo();
19  
20    /**
21     * Restituisce senza rimuvere la prima infos del messaggio.
22     *
23     * @return la prima info nella lista
24     */
25    Object viewInfo();
26  
27    /**
28     * inserisce in coda una info al messaggio.
29     * @param info
30     *            un oggetto da aggiungere
31     */
32    void addInfo(final Object info);
33  
34    /**
35     * ritorna due stringhe: la prima è il nome della variabile,
36     * la seconda il valore assunto.
37     *
38     * @return ritorna la coppia [nome, valore] della prima info
39     * @throws MessageException
40     *             se la stringa passata non ha un formato
41     *             riconosciuto come nome = valore
42     */
43    String[] getNameValue() throws MessageException;
44  
45    /**
46     * aggiunge una coppia [nome, valore] al messaggio.
47     * @param varname chiave del valore
48     * @param value valore della chiave
49     */
50    void addInfo(final String varname, final Object value);
51  
52    /**
53     * scrive l'oggetto come una stringa.
54     * E' importante che questo metodo sia implementato correttamente,
55     * perchè possa essere inviato su uno stream di caratteri
56     * @return la stringa che rappresenta lo stato dell'oggetto
57     */
58    String toString();
59  }