package com.project.common.core.absclasses; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.project.common.core.interfaces.ITreeNode; import java.util.ArrayList; import java.util.List; public class BaseTreeNode implements ITreeNode { private static final long serialVersionUID = 1L; @JsonSerialize(using = ToStringSerializer.class) protected Long id; @JsonSerialize(using = ToStringSerializer.class) protected Long parentId; @JsonInclude(JsonInclude.Include.NON_EMPTY) protected List children = new ArrayList(); @JsonInclude(JsonInclude.Include.NON_EMPTY) private Boolean hasChildren; public Boolean getHasChildren() { return this.children.size() > 0 ? false : this.hasChildren; } public BaseTreeNode() { } public Long getId() { return this.id; } public Long getParentId() { return this.parentId; } public List getChildren() { return this.children; } public void setId(final Long id) { this.id = id; } public void setParentId(final Long parentId) { this.parentId = parentId; } public void setChildren(final List children) { this.children = children; } public void setHasChildren(final Boolean hasChildren) { this.hasChildren = hasChildren; } public boolean equals(final Object o) { if (o == this) { return true; } else if (!(o instanceof BaseTreeNode)) { return false; } else { BaseTreeNode other = (BaseTreeNode)o; if (!other.canEqual(this)) { return false; } else { label59: { Object this$id = this.getId(); Object other$id = other.getId(); if (this$id == null) { if (other$id == null) { break label59; } } else if (this$id.equals(other$id)) { break label59; } return false; } Object this$parentId = this.getParentId(); Object other$parentId = other.getParentId(); if (this$parentId == null) { if (other$parentId != null) { return false; } } else if (!this$parentId.equals(other$parentId)) { return false; } Object this$hasChildren = this.getHasChildren(); Object other$hasChildren = other.getHasChildren(); if (this$hasChildren == null) { if (other$hasChildren != null) { return false; } } else if (!this$hasChildren.equals(other$hasChildren)) { return false; } Object this$children = this.getChildren(); Object other$children = other.getChildren(); if (this$children == null) { if (other$children != null) { return false; } } else if (!this$children.equals(other$children)) { return false; } return true; } } } protected boolean canEqual(final Object other) { return other instanceof BaseTreeNode; } public int hashCode() { boolean PRIME = true; int result = 1; Object $id = this.getId(); result = result * 59 + ($id == null ? 43 : $id.hashCode()); Object $parentId = this.getParentId(); result = result * 59 + ($parentId == null ? 43 : $parentId.hashCode()); Object $hasChildren = this.getHasChildren(); result = result * 59 + ($hasChildren == null ? 43 : $hasChildren.hashCode()); Object $children = this.getChildren(); result = result * 59 + ($children == null ? 43 : $children.hashCode()); return result; } public String toString() { return "BaseTreeNode(id=" + this.getId() + ", parentId=" + this.getParentId() + ", children=" + this.getChildren() + ", hasChildren=" + this.getHasChildren() + ")"; } }