### Question:
CustomInputDefinition { public CustomInput<T> of(Task element) { return new CustomInput<>(this, element); } CustomInputDefinition(String name, String type, T defaultValue); String name(); String type(); abstract T getValue(Task element); CustomInput<T> of(Task element);  }### Answer:
@Test public void shouldReuseInputSet() { Task task = bpmn2.createTask(); StringInput stringInput = new StringInput("BLAH", "ATYPE", "DEFAULTVAL"); stringInput.of(task).set("VALUE"); StringInput stringInput2 = new StringInput("BLAH2", "ATYPE", "DEFAULTVAL"); stringInput.of(task).set("VALUE"); InputOutputSpecification ioSpecification = task.getIoSpecification(); List<InputSet> inputSets = ioSpecification.getInputSets(); assertEquals(1, inputSets.size()); }