001 // Copyright 2010 Waterken Inc. under the terms of the MIT X license
002 // found at http://www.opensource.org/licenses/mit-license.html
003 package org.waterken.delayed;
004
005 import java.io.Serializable;
006
007 import org.joe_e.Struct;
008 import org.ref_send.promise.Deferred;
009 import org.ref_send.promise.Eventual;
010 import org.ref_send.promise.Promise;
011
012 /**
013 * A {@link Forwarder} maker.
014 */
015 public final class
016 ForwarderMaker {
017 private ForwarderMaker() {}
018
019 static public Forwarder
020 make(final Eventual _) {
021 class ForwarderX extends Struct implements Forwarder, Serializable {
022 static private final long serialVersionUID = 1L;
023
024 public Promise<Deferred<Boolean>>
025 forward() {
026 final Deferred<Boolean> r = _.defer();
027 return Eventual.ref(r);
028 }
029 }
030 return new ForwarderX();
031 }
032 }