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 }