test_class.declarator: engine
test_class.modifier: private
test_class.original_string: private Engine engine;
test_class.type: Engine
test_class.var_name: engine
test_class.file: implementation/src/test/java/io/smallrye/reactive/streams/EngineTest.java
test_class.identifier: EngineTest
test_case.body: @Test(expected = UnsupportedStageException.class)
      public void testCreatingPublisherWithUnknownStage() {
          engine = new Engine();
          List<Stage> stages = new ArrayList<>();
          stages.add(new Stage() {
              // Unknown stage.
          });
          stages.add((Stage.Map) () -> i -> (int) i + 1);
          Graph graph = () -> stages;
          engine.buildPublisher(graph);
      }
test_case.class_method_signature: EngineTest.testCreatingPublisherWithUnknownStage()
test_case.full_signature: @Test(expected = UnsupportedStageException.class) public void testCreatingPublisherWithUnknownStage()
test_case.identifier: testCreatingPublisherWithUnknownStage
test_case.invocations: add add buildPublisher
test_case.modifiers: @Test(expected = UnsupportedStageException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCreatingPublisherWithUnknownStage()
focal_class.file: implementation/src/main/java/io/smallrye/reactive/streams/Engine.java
focal_class.identifier: Engine
focal_class.interfaces: implements ReactiveStreamsEngine
focal_class.class_method_signature: Engine.buildPublisher(Graph graph)
focal_class.full_signature: @Override public Publisher<T> buildPublisher(Graph graph)
focal_class.identifier: buildPublisher
focal_class.modifiers: @Override public
focal_class.parameters: (Graph graph)
focal_class.return: Publisher<T>
focal_class.signature: Publisher<T> buildPublisher(Graph graph)
focal_class.class_method_signature: Engine.buildSubscriber(Graph graph)
focal_class.full_signature: @Override public SubscriberWithCompletionStage<T, R> buildSubscriber(Graph graph)
focal_class.identifier: buildSubscriber
focal_class.modifiers: @Override public
focal_class.parameters: (Graph graph)
focal_class.return: SubscriberWithCompletionStage<T, R>
focal_class.signature: SubscriberWithCompletionStage<T, R> buildSubscriber(Graph graph)
focal_class.class_method_signature: Engine.buildProcessor(Graph graph)
focal_class.full_signature: @Override public Processor<T, R> buildProcessor(Graph graph)
focal_class.identifier: buildProcessor
focal_class.modifiers: @Override public
focal_class.parameters: (Graph graph)
focal_class.return: Processor<T, R>
focal_class.signature: Processor<T, R> buildProcessor(Graph graph)
focal_class.class_method_signature: Engine.buildCompletion(Graph graph)
focal_class.full_signature: @Override public CompletionStage<T> buildCompletion(Graph graph)
focal_class.identifier: buildCompletion
focal_class.modifiers: @Override public
focal_class.parameters: (Graph graph)
focal_class.return: CompletionStage<T>
focal_class.signature: CompletionStage<T> buildCompletion(Graph graph)
focal_class.class_method_signature: Engine.applyProcessors(Flowable<I> flowable, Stage stage, ProcessorOperator operator)
focal_class.full_signature: private Flowable<O> applyProcessors(Flowable<I> flowable, Stage stage, ProcessorOperator operator)
focal_class.identifier: applyProcessors
focal_class.modifiers: private
focal_class.parameters: (Flowable<I> flowable, Stage stage, ProcessorOperator operator)
focal_class.return: Flowable<O>
focal_class.signature: Flowable<O> applyProcessors(Flowable<I> flowable, Stage stage, ProcessorOperator operator)
focal_class.class_method_signature: Engine.applySubscriber(Flowable<T> flowable, Stage stage, TerminalOperator operator)
focal_class.full_signature: private CompletionStage<R> applySubscriber(Flowable<T> flowable, Stage stage, TerminalOperator operator)
focal_class.identifier: applySubscriber
focal_class.modifiers: private
focal_class.parameters: (Flowable<T> flowable, Stage stage, TerminalOperator operator)
focal_class.return: CompletionStage<R>
focal_class.signature: CompletionStage<R> applySubscriber(Flowable<T> flowable, Stage stage, TerminalOperator operator)
focal_class.class_method_signature: Engine.createPublisher(Stage stage, PublisherOperator operator)
focal_class.full_signature: private Flowable<O> createPublisher(Stage stage, PublisherOperator operator)
focal_class.identifier: createPublisher
focal_class.modifiers: private
focal_class.parameters: (Stage stage, PublisherOperator operator)
focal_class.return: Flowable<O>
focal_class.signature: Flowable<O> createPublisher(Stage stage, PublisherOperator operator)
focal_method.body: @Override
      public <T> Publisher<T> buildPublisher(Graph graph) {
          Flowable<T> flowable = null;
          for (Stage stage : graph.getStages()) {
              Operator operator = Stages.lookup(stage);
              if (flowable == null) {
                  if (operator instanceof PublisherOperator) {
                      flowable = createPublisher(stage, (PublisherOperator) operator);
                  } else {
                      throw new IllegalArgumentException("Expecting a publisher stage, got a " + stage);
                  }
              } else {
                  if (operator instanceof ProcessorOperator) {
                      flowable = applyProcessors(flowable, stage, (ProcessorOperator) operator);
                  } else {
                      throw new IllegalArgumentException("Expecting a processor stage, got a " + stage);
                  }
              }
          }
          return flowable;
      }
focal_method.class_method_signature: Engine.buildPublisher(Graph graph)
focal_method.full_signature: @Override public Publisher<T> buildPublisher(Graph graph)
focal_method.identifier: buildPublisher
focal_method.invocations: getStages lookup createPublisher applyProcessors
focal_method.modifiers: @Override public
focal_method.parameters: (Graph graph)
focal_method.return: Publisher<T>
focal_method.signature: Publisher<T> buildPublisher(Graph graph)