test_class.declarator: transactionTemplate = new TransactionTemplate() {
          public <T> T execute(TransactionCallback<T> action) throws TransactionException {
              return action.doInTransaction(null);
          }
      }
test_class.original_string: TransactionTemplate transactionTemplate = new TransactionTemplate() {
          public <T> T execute(TransactionCallback<T> action) throws TransactionException {
              return action.doInTransaction(null);
          }
      };
test_class.type: TransactionTemplate
test_class.var_name: transactionTemplate
test_class.declarator: transactionTemplate2 = new TransactionTemplate() {
          public <T> T execute(TransactionCallback<T> action) throws TransactionException {
              return action.doInTransaction(null);
          }
      }
test_class.original_string: TransactionTemplate transactionTemplate2 = new TransactionTemplate() {
          public <T> T execute(TransactionCallback<T> action) throws TransactionException {
              return action.doInTransaction(null);
          }
      };
test_class.type: TransactionTemplate
test_class.var_name: transactionTemplate2
test_class.file: micro-transactions/src/test/java/com/oath/micro/server/transactions/TransactionFlowTest.java
test_class.identifier: TransactionFlowTest
test_case.body: @Test
      public void flatMapTest() {
          String result = TransactionFlow.of(transactionTemplate, this::load)
              .flatMap(this::newTransaction)
              .execute(10)
              .orElse("");
  
          assertThat(result, equalTo("data:10"));
  
      }
test_case.class_method_signature: TransactionFlowTest.flatMapTest()
test_case.full_signature: @Test public void flatMapTest()
test_case.identifier: flatMapTest
test_case.invocations: orElse execute flatMap of assertThat equalTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void flatMapTest()
focal_class.declarator: transactionTemplate
focal_class.modifier: private final
focal_class.original_string: private final TransactionTemplate transactionTemplate;
focal_class.type: TransactionTemplate
focal_class.var_name: transactionTemplate
focal_class.declarator: transaction
focal_class.modifier: private final
focal_class.original_string: private final Function<T,R> transaction;
focal_class.type: Function<T,R>
focal_class.var_name: transaction
focal_class.file: micro-transactions/src/main/java/com/oath/micro/server/transactions/TransactionFlow.java
focal_class.identifier: TransactionFlow
focal_class.class_method_signature: TransactionFlow.map(Function<R,R1> fn)
focal_class.full_signature: public TransactionFlow<T,R1> map(Function<R,R1> fn)
focal_class.identifier: map
focal_class.modifiers: public
focal_class.parameters: (Function<R,R1> fn)
focal_class.return: TransactionFlow<T,R1>
focal_class.signature: TransactionFlow<T,R1> map(Function<R,R1> fn)
focal_class.class_method_signature: TransactionFlow.peek(Consumer<R> c)
focal_class.full_signature: public TransactionFlow<T,R> peek(Consumer<R> c)
focal_class.identifier: peek
focal_class.modifiers: public
focal_class.parameters: (Consumer<R> c)
focal_class.return: TransactionFlow<T,R>
focal_class.signature: TransactionFlow<T,R> peek(Consumer<R> c)
focal_class.class_method_signature: TransactionFlow.flatMap(Function<R,TransactionFlow<T,R1>> fn)
focal_class.full_signature: public TransactionFlow<T,R1> flatMap(Function<R,TransactionFlow<T,R1>> fn)
focal_class.identifier: flatMap
focal_class.modifiers: public
focal_class.parameters: (Function<R,TransactionFlow<T,R1>> fn)
focal_class.return: TransactionFlow<T,R1>
focal_class.signature: TransactionFlow<T,R1> flatMap(Function<R,TransactionFlow<T,R1>> fn)
focal_class.class_method_signature: TransactionFlow.execute(T input)
focal_class.full_signature: public Try<R,Throwable> execute(T input)
focal_class.identifier: execute
focal_class.modifiers: public
focal_class.parameters: (T input)
focal_class.return: Try<R,Throwable>
focal_class.signature: Try<R,Throwable> execute(T input)
focal_class.class_method_signature: TransactionFlow.execute(T input,Class<Ex> classes)
focal_class.full_signature: public Try<R,Ex> execute(T input,Class<Ex> classes)
focal_class.identifier: execute
focal_class.modifiers: public
focal_class.parameters: (T input,Class<Ex> classes)
focal_class.return: Try<R,Ex>
focal_class.signature: Try<R,Ex> execute(T input,Class<Ex> classes)
focal_class.class_method_signature: TransactionFlow.of(TransactionTemplate transactionManager,Function<T,R> fn)
focal_class.full_signature: public static TransactionFlow<T,R> of(TransactionTemplate transactionManager,Function<T,R> fn)
focal_class.identifier: of
focal_class.modifiers: public static
focal_class.parameters: (TransactionTemplate transactionManager,Function<T,R> fn)
focal_class.return: TransactionFlow<T,R>
focal_class.signature: TransactionFlow<T,R> of(TransactionTemplate transactionManager,Function<T,R> fn)
focal_class.class_method_signature: TransactionFlow.of(TransactionTemplate transactionManager)
focal_class.full_signature: public static TransactionFlow<T,T> of(TransactionTemplate transactionManager)
focal_class.identifier: of
focal_class.modifiers: public static
focal_class.parameters: (TransactionTemplate transactionManager)
focal_class.return: TransactionFlow<T,T>
focal_class.signature: TransactionFlow<T,T> of(TransactionTemplate transactionManager)
focal_method.body: public <R1> TransactionFlow<T,R1> flatMap(Function<R,TransactionFlow<T,R1>> fn){
  		return of(transactionTemplate,a -> fn.apply(transaction.apply(a)).transaction.apply(a));
  	}
focal_method.class_method_signature: TransactionFlow.flatMap(Function<R,TransactionFlow<T,R1>> fn)
focal_method.full_signature: public TransactionFlow<T,R1> flatMap(Function<R,TransactionFlow<T,R1>> fn)
focal_method.identifier: flatMap
focal_method.invocations: of apply apply apply
focal_method.modifiers: public
focal_method.parameters: (Function<R,TransactionFlow<T,R1>> fn)
focal_method.return: TransactionFlow<T,R1>
focal_method.signature: TransactionFlow<T,R1> flatMap(Function<R,TransactionFlow<T,R1>> fn)