@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof TInterfaceDefinition)) return false; TInterfaceDefinition that = (TInterfaceDefinition) o; return Objects.equals(getType(), that.getType()) && Objects.equals(getInputs(), that.getInputs()) && Objects.equals(getOperations(), that.getOperations()); }
@Override public int hashCode() { return Objects.hash(getType(), getInputs(), getOperations()); }
@Override public String toString() { return "TInterfaceDefinition{" + "type=" + getType() + ", inputs=" + getInputs() + ", operations=" + getOperations() + '}'; }
public Printer visit(TInterfaceDefinition node, Parameter parameter) { return new Printer(parameter.getIndent()) .printKeyValue("type", node.getType()) .print(printMap("inputs", node.getInputs(), parameter)) .print(node.getOperations().entrySet().stream() .filter(entry -> Objects.nonNull(entry) && Objects.nonNull(entry.getValue())) .map(entry -> printVisitorNode(entry.getValue(), new Parameter(parameter.getIndent()).addContext(entry.getKey())) ) .reduce(Printer::print) ); }
@Override public R visit(TInterfaceDefinition node, P parameter) { return reduce(Stream.of( visitElement(node.getInputs(), parameter, "inputs"), visitElement(node.getOperations(), parameter, "operations") )); }