package gueei.binding; import java.util.ArrayList; public abstract class MulticastListener<Th, T> { public abstract void registerToHost(Th host); protected ArrayList<T> listeners = new ArrayList<T>(0); public void removeListener(T listener){ listeners.remove(listener); } public void register(T listener){ listeners.add(listener); } public void registerWithHighPriority(T listener){ listeners.add(0, listener); } private boolean mBroadcasting = true; public void nextActionIsNotFromUser(){ mBroadcasting = false; } protected boolean isFromUser(){ return mBroadcasting; } protected void clearBroadcastState(){ mBroadcasting = true; } }