001    // Copyright 2007 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.bounce;
004    
005    import org.joe_e.array.ConstArray;
006    import org.ref_send.promise.Promise;
007    
008    /**
009     * An object to bounce requests off of.
010     */
011    public interface
012    Wall {
013        
014        /**
015         * Creates a record of all types.
016         */
017        Promise<ConstArray<AllTypes>> getAll();
018    
019        /**
020         * Returns the given argument.
021         * @param a value to return
022         * @return <code>a</code>
023         */
024        <A> Promise<A> bounce(A a);
025        
026        /**
027         * Sends a variable argument list.
028         * @param num   each vararg
029         */
030        Promise<Integer> sum(int... num);
031    }