OperationChain implements Output<OUT>,
        Operations<Operation> { public String toOverviewString() { final String opStrings = operations.stream() .filter(o -> null != o) .map(o -> o.getClass().getSimpleName()) .collect(Collectors.joining("->")); return getClass().getSimpleName() + "[" + opStrings + "]"; } OperationChain();  OperationChain(final Operation operation);  OperationChain(final Output<OUT> operation);  OperationChain(final Operation... operations);  OperationChain(final List<Operation> operations);  OperationChain(final List<Operation> operations, final boolean flatten); static OperationChain<?> wrap(final Operation operation); static OperationChain<O> wrap(final Output<O> operation); @JsonIgnore @Override TypeReference<OUT> getOutputTypeReference(); @Override @JsonIgnore List<Operation> getOperations(); OperationChain<OUT> shallowClone(); @Override Map<String, String> getOptions(); @Override void setOptions(final Map<String, String> options); @Override String toString(); String toOverviewString(); @Override void close(); @Override boolean equals(final Object obj); @Override int hashCode();  }
@Test public void shouldConvertToOverviewString() { final OperationChain opChain = new OperationChain.Builder() .first(new GetAdjacentIds.Builder() .input(new EntitySeed("vertex1")) .build()) .then(new Limit<>(1)) .build(); final String overview = opChain.toOverviewString(); assertEquals("OperationChain[GetAdjacentIds->Limit]", overview); }
@Test public void shouldConvertToOverviewStringWithNoOperations() { final OperationChain opChain = new OperationChain(); final String overview = opChain.toOverviewString(); assertEquals("OperationChain[]", overview); }