package io.nextop.client.node; import io.nextop.client.MessageControl; import io.nextop.client.MessageControlChannel; import io.nextop.client.MessageControlNode; import io.nextop.client.MessageControlState; import rx.Scheduler; import javax.annotation.Nullable; public class PassthroughNode extends AbstractMessageControlNode { MessageControlNode downstream; public PassthroughNode(MessageControlNode downstream) { this.downstream = downstream; } @Override protected void initDownstream(final @Nullable Bundle savedState) { downstream.init(new MessageControlChannel() { @Override public void onActive(boolean active) { upstream.onActive(active); } @Override public void onMessageControl(MessageControl mc) { upstream.onMessageControl(mc); } @Override public MessageControlState getMessageControlState() { return upstream.getMessageControlState(); } @Override public void post(Runnable r) { upstream.post(r); } @Override public void postDelayed(Runnable r, int delayMs) { upstream.postDelayed(r, delayMs); } @Override public Scheduler getScheduler() { return upstream.getScheduler(); } }, savedState); } @Override public void onActive(boolean active) { downstream.onActive(active); } @Override public void onMessageControl(MessageControl mc) { downstream.onMessageControl(mc); } }