增加LambdaTreeNodeConfig类

This commit is contained in:
Looly
2024-08-01 17:26:30 +08:00
parent 62529d0ba7
commit 146fb20881
2 changed files with 95 additions and 68 deletions

View File

@@ -12,6 +12,7 @@
package org.dromara.hutool.core.tree;
import lombok.Data;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Console;
import org.dromara.hutool.core.tree.parser.DefaultNodeParser;
@@ -145,10 +146,13 @@ public class TreeTest {
Assertions.assertEquals(7, ids2.size());
}
/**
* https://gitee.com/dromara/hutool/pulls/1248/
*/
@Test
public void lambdaConfigTest() {
// 配置自定义属性名 为null则取默认值
LambdaTreeNodeConfig<CustomTreeNode, String> treeNodeConfig = new LambdaTreeNodeConfig<>();
final LambdaTreeNodeConfig<CustomTreeNode, String> treeNodeConfig = new LambdaTreeNodeConfig<>();
treeNodeConfig.setChildrenKeyFun(CustomTreeNode::getChildrenNodes);
treeNodeConfig.setIdKeyFun(CustomTreeNode::getNodeId);
treeNodeConfig.setNameKeyFun(CustomTreeNode::getLabel);
@@ -157,9 +161,9 @@ public class TreeTest {
// 最大递归深度
treeNodeConfig.setDeep(3);
List<MapTree<String>> treeNodes = TreeUtil.build(nodeList, "0", treeNodeConfig, new DefaultNodeParser<>());
final List<MapTree<String>> treeNodes = TreeUtil.build(nodeList, "0", treeNodeConfig, new DefaultNodeParser<>());
Assertions.assertEquals(treeNodes.size(), 2);
MapTree<String> treeNode1 = treeNodes.get(1);
final MapTree<String> treeNode1 = treeNodes.get(1);
Assertions.assertNotNull(treeNode1);
Assertions.assertNotNull(treeNode1.getConfig());
Assertions.assertEquals(treeNode1.getChildren().size(), 1);
@@ -170,7 +174,8 @@ public class TreeTest {
*
* @author Earlman
*/
private class CustomTreeNode {
@Data
static class CustomTreeNode {
// 主键ID
private String nodeId;
// 节点名称
@@ -181,45 +186,5 @@ public class TreeTest {
private Integer sortNo;
// 子节点
private List<CustomTreeNode> childrenNodes;
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getParentNodeId() {
return parentNodeId;
}
public void setParentNodeId(String parentNodeId) {
this.parentNodeId = parentNodeId;
}
public Integer getSortNo() {
return sortNo;
}
public void setSortNo(Integer sortNo) {
this.sortNo = sortNo;
}
public List<CustomTreeNode> getChildrenNodes() {
return childrenNodes;
}
public void setChildrenNodes(List<CustomTreeNode> childrenNodes) {
this.childrenNodes = childrenNodes;
}
}
}