test_class.file: core/src/test/java/dk/alexandra/fresco/framework/builder/TestProtocolBuilderImpl.java
test_class.identifier: TestProtocolBuilderImpl
test_case.body: @Test(expected = IllegalStateException.class)
    public void build() throws Exception {
      ProtocolBuilderImpl<BuilderTestClass> protocolBuilder = new BuilderTestClass();
      protocolBuilder.append(null);
      protocolBuilder.build();
      protocolBuilder.append(null);
    }
test_case.class_method_signature: TestProtocolBuilderImpl.build()
test_case.full_signature: @Test(expected = IllegalStateException.class) public void build()
test_case.identifier: build
test_case.invocations: append build append
test_case.modifiers: @Test(expected = IllegalStateException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void build()
focal_class.declarator: parallel
focal_class.modifier: private final
focal_class.original_string: private final boolean parallel;
focal_class.type: boolean
focal_class.var_name: parallel
focal_class.declarator: protocols
focal_class.modifier: private
focal_class.original_string: private List<ProtocolProducer> protocols;
focal_class.type: List<ProtocolProducer>
focal_class.var_name: protocols
focal_class.declarator: factory
focal_class.modifier: private
focal_class.original_string: private BuilderFactory<BuilderT> factory;
focal_class.type: BuilderFactory<BuilderT>
focal_class.var_name: factory
focal_class.file: core/src/main/java/dk/alexandra/fresco/framework/builder/ProtocolBuilderImpl.java
focal_class.identifier: ProtocolBuilderImpl
focal_class.interfaces: implements ProtocolBuilder
focal_class.class_method_signature: ProtocolBuilderImpl.ProtocolBuilderImpl(
        BuilderFactory<BuilderT> factory,
        boolean parallel)
focal_class.full_signature: protected  ProtocolBuilderImpl(
        BuilderFactory<BuilderT> factory,
        boolean parallel)
focal_class.identifier: ProtocolBuilderImpl
focal_class.modifiers: protected
focal_class.parameters: (
        BuilderFactory<BuilderT> factory,
        boolean parallel)
focal_class.signature:  ProtocolBuilderImpl(
        BuilderFactory<BuilderT> factory,
        boolean parallel)
focal_class.class_method_signature: ProtocolBuilderImpl.createAndAppend(ProtocolProducer producer)
focal_class.full_signature: private void createAndAppend(ProtocolProducer producer)
focal_class.identifier: createAndAppend
focal_class.modifiers: private
focal_class.parameters: (ProtocolProducer producer)
focal_class.return: void
focal_class.signature: void createAndAppend(ProtocolProducer producer)
focal_class.class_method_signature: ProtocolBuilderImpl.append(NativeProtocol<T, ?> nativeProtocol)
focal_class.full_signature: public DRes<T> append(NativeProtocol<T, ?> nativeProtocol)
focal_class.identifier: append
focal_class.modifiers: public
focal_class.parameters: (NativeProtocol<T, ?> nativeProtocol)
focal_class.return: DRes<T>
focal_class.signature: DRes<T> append(NativeProtocol<T, ?> nativeProtocol)
focal_class.class_method_signature: ProtocolBuilderImpl.build()
focal_class.full_signature: public ProtocolProducer build()
focal_class.identifier: build
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ProtocolProducer
focal_class.signature: ProtocolProducer build()
focal_class.class_method_signature: ProtocolBuilderImpl.seq(Computation<R, BuilderT> function)
focal_class.full_signature: public BuildStep<Void, BuilderT, R> seq(Computation<R, BuilderT> function)
focal_class.identifier: seq
focal_class.modifiers: public
focal_class.parameters: (Computation<R, BuilderT> function)
focal_class.return: BuildStep<Void, BuilderT, R>
focal_class.signature: BuildStep<Void, BuilderT, R> seq(Computation<R, BuilderT> function)
focal_class.class_method_signature: ProtocolBuilderImpl.par(ComputationParallel<R, BuilderT> f)
focal_class.full_signature: public BuildStep<Void, BuilderT, R> par(ComputationParallel<R, BuilderT> f)
focal_class.identifier: par
focal_class.modifiers: public
focal_class.parameters: (ComputationParallel<R, BuilderT> f)
focal_class.return: BuildStep<Void, BuilderT, R>
focal_class.signature: BuildStep<Void, BuilderT, R> par(ComputationParallel<R, BuilderT> f)
focal_method.body: public ProtocolProducer build() {
      if (parallel) {
        ParallelProtocolProducer parallelProtocolProducer = new ParallelProtocolProducer(protocols);
        protocols = null;
        return parallelProtocolProducer;
      } else {
        SequentialProtocolProducer sequentialProtocolProducer =
            new SequentialProtocolProducer(protocols);
        protocols = null;
        return sequentialProtocolProducer;
      }
    }
focal_method.class_method_signature: ProtocolBuilderImpl.build()
focal_method.full_signature: public ProtocolProducer build()
focal_method.identifier: build
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: ProtocolProducer
focal_method.signature: ProtocolProducer build()