package gueei.binding; import java.util.Collection; public abstract class TwoWayDependentObservable<T> extends DependentObservable<T> { public TwoWayDependentObservable(Class<T> type, IObservable<?>... dependents){ super(type, dependents); } /** * * @param value The value to convert back * @param outResult Output of the converted result * @return true if the converter can handle, false if doesn't */ public abstract boolean ConvertBack(Object value, Object[] outResult); @Override protected void doSetValue(T newValue, Collection<Object> initiators) { int count = mDependents.length; Object[] outResult = new Object[count]; if (!ConvertBack(newValue, outResult)) return; for(int i=0; i<count; i++){ mDependents[i]._setObject(outResult[i], initiators); } } }