ExecutionTwoParamBuilderImpl extends AbstractExecutionBuilder<T> implements ExecutionTwoParamBuilder<T, P0, P1> { @Override public <P2> ExecutionThreeParamBuilder<T, P0, P1, P2> withState( State state2, Class<P2> param2) { return new ExecutionThreeParamBuilderImpl<>( getComponent(), getState(), param0, state0, param1, state1, param2, state2 ); } ExecutionTwoParamBuilderImpl(
            Class<T> component, State state,
            Class<P0> param0, State state0,
            Class<P1> param1, State state1); @Override ExecutionThreeParamBuilder<T, P0, P1, P2> withState(
            State state2, Class<P2> param2); @Override ExecutionBuilder<T> withExecute(TriConsumer<T, P0, P1> executeAction); @Override Execution<T> build(DependencyGraph graph);  }
@Test void withState() { final ExecutionThreeParamBuilder<Integer, String, Long, Float> e1 = builder.withState(State.CREATED, Float.class); assertNotNull(e1); }