mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-18 17:34:43 -04:00
small Observable optimization
This commit is contained in:
parent
49ec8c712b
commit
87b45d77b8
@ -1,7 +1,6 @@
|
|||||||
package de.neemann.digital.core;
|
package de.neemann.digital.core;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple observable
|
* A simple observable
|
||||||
@ -25,7 +24,7 @@ public class Observable {
|
|||||||
* @return observer the observer to add
|
* @return observer the observer to add
|
||||||
*/
|
*/
|
||||||
public Observer addObserver(Observer observer) {
|
public Observer addObserver(Observer observer) {
|
||||||
if (observer != null)
|
if (observer != null && !observers.contains(observer))
|
||||||
observers.add(observer);
|
observers.add(observer);
|
||||||
return observer;
|
return observer;
|
||||||
}
|
}
|
||||||
@ -52,11 +51,7 @@ public class Observable {
|
|||||||
* @param observerClass the class of observers to remove
|
* @param observerClass the class of observers to remove
|
||||||
*/
|
*/
|
||||||
public void removeObserver(Class<? extends Observer> observerClass) {
|
public void removeObserver(Class<? extends Observer> observerClass) {
|
||||||
Iterator<Observer> it = observers.iterator();
|
observers.removeIf(observer -> observer.getClass() == observerClass);
|
||||||
while (it.hasNext()) {
|
|
||||||
if (it.next().getClass() == observerClass)
|
|
||||||
it.remove();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user