Definizione alla linea 20 del file Observable.java.
Membri pubblici | |
Observable () | |
Creates a new instance of Observable. | |
synchronized void | addObserver (Observer o) |
Aggiunge un nuovo Observer all'insieme di Observer per questo oggetto, a patto che l'Observer che si sta inserendo non sia già prensente nell'insieme. | |
synchronized void | deleteObserver (Observer o) |
Elimina un Observer dal'insieme. | |
void | notifyObservers () |
Se l'oggetto è cambiato (hasChanged() ritorna true), notifica tale cambiamento agli obervers effettuando la chiamata al loro metodo update ). | |
void | notifyObservers (Object arg) |
Se l'oggetto è cambiato (hasChanged() ritorna true) , notifica tale cambiamento agli obervers effettuando la chiamata al loro metodo update . | |
synchronized void | deleteObservers () |
effettua il clear della lista degli observers | |
synchronized boolean | hasChanged () |
Verifica se l'oggetto è cambiato. | |
synchronized int | countObservers () |
Ritorna il numero di observer per questo oggetto. | |
Membri protetti | |
synchronized void | setChanged () |
Marca questo oggetto Observable come changed. | |
synchronized void | clearChanged () |
Indica che gli observer sono stati notificati dell'ultimo cambiamento. | |
Attributi privati | |
boolean | changed = false |
Vector | obs |
|
Creates a new instance of Observable.
Definizione alla linea 26 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.obs. 00026 { 00027 obs = new Vector(); 00028 }
|
|
Aggiunge un nuovo Observer all'insieme di Observer per questo oggetto, a patto che l'Observer che si sta inserendo non sia già prensente nell'insieme. Il metodo è dichiarato synchronized per evitare che, nel caso di multithreading, si verifichino race conditions che portino ad inserire ugualmente due volte lo stesso Observer
Definizione alla linea 39 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.obs. 00039 { 00040 if (o == null) 00041 throw new NullPointerException(); 00042 if (!obs.contains(o)) { 00043 obs.addElement(o); 00044 } 00045 }
|
|
Indica che gli observer sono stati notificati dell'ultimo cambiamento.
il metodo
Definizione alla linea 136 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.changed. Referenziato da org.jaebi.midlet.util.Observable.notifyObservers(). 00136 { 00137 changed = false; 00138 }
|
|
Ritorna il numero di observer per questo oggetto.
Definizione alla linea 159 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.obs. 00159 { 00160 return obs.size(); 00161 }
|
|
Elimina un Observer dal'insieme.
Definizione alla linea 52 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.obs. 00052 { 00053 obs.removeElement(o); 00054 }
|
|
effettua il clear della lista degli observers
Definizione alla linea 116 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.obs. 00116 { 00117 obs.removeAllElements(); 00118 }
|
|
Verifica se l'oggetto è cambiato.
Definizione alla linea 150 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.changed. 00150 { 00151 return changed; 00152 }
|
|
Se l'oggetto è cambiato (
Una volta effettuata la notifica, viene chiamato il metodo
Definizione alla linea 80 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.changed, org.jaebi.midlet.util.Observable.clearChanged(), e org.jaebi.midlet.util.Observable.obs. 00080 { 00081 /* 00082 *Collezione degli observer usata come snapshot dello stato degli observer correnti 00083 */ 00084 Enumeration observers; 00085 00086 synchronized (this) { 00087 /* 00088 * Il codice incaricato di estrarre la lista degli observer da notificare 00089 * necessita di sincronizzazione ma la notifica vera e propria no (non dovrebbe) 00090 * Il peggior risultato di una qualsiasi race-condition che possa verificarsi qui (in assenza di sincronizzazione 00091 * è il seguente: 00092 * 1) a newly-added Observer will miss a 00093 * notification in progress: siccome anche il metododo addObserver() è 00094 * dichiarato sinchronized non può verificarsi che un flusso di controllo aggiunga un nuovo observer 00095 * mentre un altro sta recuperando la lista degli observer per effettuare la notifica 00096 * 2) a recently unregistered Observer will be 00097 * wrongly notified when it doesn't care: non può verificarsi che un flusso di controllo 00098 * stia rimuovendo un observer mentre un altro sta recuperando 00099 * la lista delgi observer a cui inviare la notifica (il metodo deleteObserver() è dichiarato anch'esso 00100 * synchronized 00101 */ 00102 if (!changed) 00103 return; 00104 observers = obs.elements(); 00105 clearChanged(); 00106 } 00107 00108 while (observers.hasMoreElements()) 00109 ((Observer)observers.nextElement()).update(this, arg); 00110 00111 }
Questo è il grafo delle chiamate per questa funzione: ![]() |
|
Se l'oggetto è cambiato (
Una volta effettuata la notifica, viene chiamato il metodo
Definizione alla linea 65 del file Observable.java. Referenziato da org.jaebi.midlet.bt.ConnectionSet.addConnection(), org.jaebi.midlet.bt.ConnectionSet.removeConnection(), org.jaebi.midlet.bt.Discoverer.run(), org.jaebi.midlet.bt.Discoverer.searchServices(), e org.jaebi.midlet.bt.Discoverer.serviceSearchCompleted(). 00065 { 00066 notifyObservers(null); 00067 }
|
|
Marca questo oggetto
Definizione alla linea 123 del file Observable.java. Riferimenti org.jaebi.midlet.util.Observable.changed. Referenziato da org.jaebi.midlet.bt.Discoverer.setState(). 00123 { 00124 changed = true; 00125 }
|
|
Definizione alla linea 22 del file Observable.java. Referenziato da org.jaebi.midlet.util.Observable.clearChanged(), org.jaebi.midlet.util.Observable.hasChanged(), org.jaebi.midlet.util.Observable.notifyObservers(), e org.jaebi.midlet.util.Observable.setChanged(). |
|