浏览代码

Add ability to make an observer that automatically fires a signal to another observer.

Sam Jaffe 8 年之前
父节点
当前提交
2e61d5c08a
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10 0
      src/main/lombok/org/leumasjaffe/observer/ObservableListener.java

+ 10 - 0
src/main/lombok/org/leumasjaffe/observer/ObservableListener.java

@@ -20,4 +20,14 @@ public class ObservableListener<C, T extends Observable> {
 	public void notifySubscribers(Observable obs) {
 		this.impl.notifySubscribers(obs);
 	}
+	
+	public static <C extends Observable, T extends Observable> ObservableListener<C, T> cascade(T from, C to) {
+		ObservableListener<C, T> lis = new ObservableListener<C, T>(to, ObservableListener::cascadeImpl);
+		lis.setObserved(from);
+		return lis;
+	}
+	
+	private static void cascadeImpl(Observable to, Observable from) {
+		ObserverDispatch.notifySubscribers(to);
+	}
 }