package andevcon14.FragmentCommsSupport.Types.ObserverPattern;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
public class Counter implements Serializable {
private int count = 0;
private final Set<Observer> observers = new HashSet<Observer>();
public void update(boolean isPlus){
if (isPlus)
count++;
else
count--;
updateListeners();
}
public void register(Observer observer){
if (observers.add(observer))
observer.onCount(count);
}
public void unRegister(Observer observer){
observers.remove(observer);
}
private void updateListeners(){
for(Observer observer : observers)
observer.onCount(count);
}
public interface Observer {
public void onCount(int count);
}
}