|
@@ -0,0 +1,55 @@
|
|
|
+package edu.travel.utils.tree;
|
|
|
+
|
|
|
+import lombok.Getter;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 树结点
|
|
|
+ *
|
|
|
+ * @author Zee
|
|
|
+ * @date 2023/7/20 0020 9:45
|
|
|
+ */
|
|
|
+public abstract class TreeNode {
|
|
|
+ /**
|
|
|
+ * 获取当前节点id
|
|
|
+ *
|
|
|
+ * @return 节点id
|
|
|
+ */
|
|
|
+ public abstract String getId();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取父级节点id
|
|
|
+ *
|
|
|
+ * @return 父级节点id
|
|
|
+ */
|
|
|
+ public abstract String getParentId();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否根节点
|
|
|
+ */
|
|
|
+ @Getter
|
|
|
+ private Boolean rootNode;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否叶子节点
|
|
|
+ **/
|
|
|
+ @Getter
|
|
|
+ private Boolean leafNode;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 子节点数据
|
|
|
+ **/
|
|
|
+ @Getter
|
|
|
+ private List<TreeNode> children;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置子节点数据,设置为protected禁止外部调用
|
|
|
+ **/
|
|
|
+ protected void setChildren(List<TreeNode> children) {
|
|
|
+ this.children = children;
|
|
|
+ this.rootNode = Objects.equals(getParentId(), "0");
|
|
|
+ this.leafNode = children == null || children.isEmpty();
|
|
|
+ }
|
|
|
+}
|