input3.setType("integer");
InputModel input4 = new InputModel("required", "flowScope.boop");
input4.setRequired("true");
model.setInputs(asList(InputModel.class, input1, input2, input3, input4));
OutputModel output1 = new OutputModel("differentName", "flowScope.bar");
OutputModel output2 = new OutputModel("number", "flowScope.baz");
output2.setType("integer");
OutputModel output3 = new OutputModel("required", "flowScope.baz");
output3.setType("integer");
output3.setRequired("true");
OutputModel output4 = new OutputModel("literal", "'a literal'");
model.setOutputs(asList(OutputModel.class, output1, output2, output3, output4));
EndStateModel end = new EndStateModel("end");
end.setOutputs(asList(OutputModel.class, new OutputModel("foo", "flowScope.foo")));
EndStateModel notReached = new EndStateModel("notReached");
notReached.setOutputs(asList(OutputModel.class, new OutputModel("notReached", "flowScope.foo")));
model.setStates(asList(AbstractStateModel.class, end, notReached));
Flow flow = getFlow(model);
FlowExecutionImplFactory factory = new FlowExecutionImplFactory();