classic_blue 1 сар өмнө
parent
commit
9b1d7c034f

+ 55 - 0
edu-travel-common/edu-travel-common-core/src/main/java/edu/travel/utils/tree/TreeNode.java

@@ -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();
+    }
+}