GenerateElements implements
        InputOutput<Iterable<? extends OBJ>, Iterable<? extends Element>>,
        MultiInput<OBJ> { @Override public Iterable<? extends OBJ> getInput() { return input; } GenerateElements();  GenerateElements(final Function<Iterable<? extends OBJ>, Iterable<? extends Element>> elementGenerator); @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "class") Function<Iterable<? extends OBJ>, Iterable<? extends Element>> getElementGenerator(); @Override Iterable<? extends OBJ> getInput(); @Override void setInput(final Iterable<? extends OBJ> input); @Override TypeReference<Iterable<? extends Element>> getOutputTypeReference(); @Override GenerateElements<OBJ> shallowClone(); @Override Map<String, String> getOptions(); @Override void setOptions(final Map<String, String> options);  }
@Test @Override public void builderShouldCreatePopulatedOperation() { GenerateElements<?> generateElements = new GenerateElements.Builder<String>() .generator(new ElementGeneratorImpl()) .input("Test1", "Test2") .build(); Iterator iter = generateElements.getInput().iterator(); assertEquals("Test1", iter.next()); assertEquals("Test2", iter.next()); }