test_class.file: producers/src/test/java/dagger/producers/internal/ProducersTest.java
test_class.identifier: ProducersTest
test_case.body: @Test public void createFutureProduced_cancelPropagatesBackwards() throws Exception {
      ListenableFuture<String> future = SettableFuture.create();
      ListenableFuture<Produced<String>> producedFuture = Producers.createFutureProduced(future);
      assertThat(producedFuture.isDone()).isFalse();
      producedFuture.cancel(false);
      assertThat(future.isCancelled()).isTrue();
    }
test_case.class_method_signature: ProducersTest.createFutureProduced_cancelPropagatesBackwards()
test_case.full_signature: @Test public void createFutureProduced_cancelPropagatesBackwards()
test_case.identifier: createFutureProduced_cancelPropagatesBackwards
test_case.invocations: create createFutureProduced isFalse assertThat isDone cancel isTrue assertThat isCancelled
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void createFutureProduced_cancelPropagatesBackwards()
focal_class.declarator: FUTURE_FALLBACK_FOR_PRODUCED =
        new FutureFallback<Produced<Object>>() {
      @Override public ListenableFuture<Produced<Object>> create(final Throwable t) {
        Produced<Object> produced = new Produced<Object>() {
          @Override public Object get() throws ExecutionException {
            throw new ExecutionException(t);
          }
        };
        return Futures.immediateFuture(produced);
      }
    }
focal_class.modifier: private static final
focal_class.original_string: private static final FutureFallback<Produced<Object>> FUTURE_FALLBACK_FOR_PRODUCED =
        new FutureFallback<Produced<Object>>() {
      @Override public ListenableFuture<Produced<Object>> create(final Throwable t) {
        Produced<Object> produced = new Produced<Object>() {
          @Override public Object get() throws ExecutionException {
            throw new ExecutionException(t);
          }
        };
        return Futures.immediateFuture(produced);
      }
    };
focal_class.type: FutureFallback<Produced<Object>>
focal_class.var_name: FUTURE_FALLBACK_FOR_PRODUCED
focal_class.file: producers/src/main/java/dagger/producers/internal/Producers.java
focal_class.identifier: Producers
focal_class.class_method_signature: Producers.createFutureProduced(ListenableFuture<T> future)
focal_class.full_signature: public static ListenableFuture<Produced<T>> createFutureProduced(ListenableFuture<T> future)
focal_class.identifier: createFutureProduced
focal_class.modifiers: public static
focal_class.parameters: (ListenableFuture<T> future)
focal_class.return: ListenableFuture<Produced<T>>
focal_class.signature: ListenableFuture<Produced<T>> createFutureProduced(ListenableFuture<T> future)
focal_class.class_method_signature: Producers.futureFallbackForProduced()
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) // bivariant implementation private static FutureFallback<Produced<T>> futureFallbackForProduced()
focal_class.identifier: futureFallbackForProduced
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) // bivariant implementation private static
focal_class.parameters: ()
focal_class.return: FutureFallback<Produced<T>>
focal_class.signature: FutureFallback<Produced<T>> futureFallbackForProduced()
focal_class.class_method_signature: Producers.createFutureSingletonSet(ListenableFuture<T> future)
focal_class.full_signature: public static ListenableFuture<Set<T>> createFutureSingletonSet(ListenableFuture<T> future)
focal_class.identifier: createFutureSingletonSet
focal_class.modifiers: public static
focal_class.parameters: (ListenableFuture<T> future)
focal_class.return: ListenableFuture<Set<T>>
focal_class.signature: ListenableFuture<Set<T>> createFutureSingletonSet(ListenableFuture<T> future)
focal_class.class_method_signature: Producers.submitToExecutor(Callable<T> callable, Executor executor)
focal_class.full_signature: public static ListenableFuture<T> submitToExecutor(Callable<T> callable, Executor executor)
focal_class.identifier: submitToExecutor
focal_class.modifiers: public static
focal_class.parameters: (Callable<T> callable, Executor executor)
focal_class.return: ListenableFuture<T>
focal_class.signature: ListenableFuture<T> submitToExecutor(Callable<T> callable, Executor executor)
focal_class.class_method_signature: Producers.producerFromProvider(final Provider<T> provider)
focal_class.full_signature: public static Producer<T> producerFromProvider(final Provider<T> provider)
focal_class.identifier: producerFromProvider
focal_class.modifiers: public static
focal_class.parameters: (final Provider<T> provider)
focal_class.return: Producer<T>
focal_class.signature: Producer<T> producerFromProvider(final Provider<T> provider)
focal_class.class_method_signature: Producers.Producers()
focal_class.full_signature: private  Producers()
focal_class.identifier: Producers
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Producers()
focal_method.body: public static <T> ListenableFuture<Produced<T>> createFutureProduced(ListenableFuture<T> future) {
      return Futures.withFallback(
          Futures.transform(future, new Function<T, Produced<T>>() {
            @Override public Produced<T> apply(final T value) {
              return new Produced<T>() {
                @Override public T get() {
                  return value;
                }
              };
            }
          }), Producers.<T>futureFallbackForProduced());
  
    }
focal_method.class_method_signature: Producers.createFutureProduced(ListenableFuture<T> future)
focal_method.full_signature: public static ListenableFuture<Produced<T>> createFutureProduced(ListenableFuture<T> future)
focal_method.identifier: createFutureProduced
focal_method.invocations: withFallback transform futureFallbackForProduced
focal_method.modifiers: public static
focal_method.parameters: (ListenableFuture<T> future)
focal_method.return: ListenableFuture<Produced<T>>
focal_method.signature: ListenableFuture<Produced<T>> createFutureProduced(ListenableFuture<T> future)