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<T> implements ITreeNode<T> {
|
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<T> 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<T> 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<T> 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() + ")";
|
}
|
}
|