code: public static BindFuture combineFutures(BindFuture future1, BindFuture future2) {
          if (future1 == null || future1.isBound()) {
              return future2;
          }
          else if (future2 == null || future2.isBound()) {
              return future1;
          }
          else {
              return new CompositeBindFuture(Arrays.asList(future1, future2));
          }
      }
docs: Combine futures in a way that minimizes cost(no object creation) for the common case where
  both have already been fulfilled.