@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof TRepositoryDefinition)) return false; TRepositoryDefinition that = (TRepositoryDefinition) o; return Objects.equals(getDescription(), that.getDescription()) && Objects.equals(getUrl(), that.getUrl()) && Objects.equals(getCredential(), that.getCredential()); }
@Override public int hashCode() { return Objects.hash(getDescription(), getUrl(), getCredential()); }
@Override public String toString() { return "TRepositoryDefinition{" + "description='" + getDescription() + '\'' + ", url='" + getUrl() + '\'' + ", credential=" + getCredential() + '}'; }
@Override public Result visit(TRepositoryDefinition node, Parameter parameter) { if (Objects.isNull(node)) return null; if (Objects.isNull(node.getUrl()) || node.getUrl().isEmpty()) { setException(new UndefinedRequiredKeyname("Field 'url' is required") .setContext(parameter.getContext()) ); } if (Objects.nonNull(node.getCredential())) { Credential credential = node.getCredential(); if (Objects.isNull(credential.getToken()) || credential.getToken().isEmpty()) { setException(new UndefinedRequiredKeyname("Field 'credential.token' is required") .setContext(parameter.getContext()) ); } if (Objects.isNull(credential.getTokenType()) || credential.getTokenType().isEmpty()) { setException(new UndefinedRequiredKeyname("Field 'credential.token_type' is required") .setContext(parameter.getContext()) ); } } return super.visit(node, parameter); }
public Printer visit(TRepositoryDefinition node, Parameter parameter) { Printer printer = new Printer(parameter.getIndent()) .printKeyValue("description", node.getDescription()) .printKeyValue("url", node.getUrl()); if (Objects.nonNull(node.getCredential())) { Credential credential = node.getCredential(); printer.printKey("credential") .indent(INDENT_SIZE) .printKeyValue("protocol", credential.getProtocol()) .printKeyValue("token_type", credential.getTokenType()) .printKeyValue("token", credential.getToken()) .printKeyObject("keys", credential.getKeys()) .printKeyValue("user", credential.getUser()) .indent(-INDENT_SIZE); } return printer; }