Filter implements Function,
        InputOutput<Iterable<? extends Element>, Iterable<? extends Element>>,
        MultiInput<Element> { @Override public Iterable<? extends Element> getInput() { return input; }  @Override Filter shallowClone(); @Override Map<String, String> getOptions(); @Override void setOptions(final Map<String, String> options); @Override Iterable<? extends Element> getInput(); @Override void setInput(final Iterable<? extends Element> input); @Override Map<String, ElementFilter> getEdges(); void setEdges(final Map<String, ElementFilter> edges); @Override Map<String, ElementFilter> getEntities(); void setEntities(final Map<String, ElementFilter> entities); ElementFilter getGlobalElements(); void setGlobalElements(final ElementFilter globalElements); ElementFilter getGlobalEntities(); void setGlobalEntities(final ElementFilter globalEntities); ElementFilter getGlobalEdges(); void setGlobalEdges(final ElementFilter globalEdges); @Override TypeReference<Iterable<? extends Element>> getOutputTypeReference();  }
@Test @Override public void builderShouldCreatePopulatedOperation() { final Filter filter = new Filter.Builder() .input(new Entity("road"), new Edge("railway")) .entity("road", new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(10)) .build()) .entity("road2", new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(20)) .build()) .build(); assertNotNull(filter.getInput()); }