基于java实现的多层目录结构 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-18
Node> {
2
3 private String type;
4 private Node root; // root准泣
5 private Map<Integer, T> nodeHolder = new HashMap<Integer, T>();// 准泣隔嗤匂
6
7 private NodeStore<T> nodeStore;
8
9 /**
10 * 繍峠中議node list更秀撹峯
11 *
12 * @throws TreeException
13 */
14 public void build() throws TreeException {
15 List<T> nodes = nodeStore.findByType(type);
16 // 泌惚nodes葎腎,夸音恂販採侃尖
17 if (nodes == null || nodes.isEmpty()) {
18 return;
19 }
20 // 譜崔root才node隔嗤匂
21 for (T node : nodes) {
22 if (node.isRootNode()) {
23 this.root = node;
24 }
25 nodeHolder.put(node.getId(), node);
26 }
27
28 // 泌惚root葎腎,夸build払移阻
29 if (root == null) {
30 throw new TreeException("no root node found.");
31 }
32
33 // 秀羨准泣岻念購狼
34 for (T node : nodes) {
35 if (node.isRootNode()) {
36 continue;
37 }
38 Node parent = getNodeById(node.getParentId());
39 if (parent == null) {
40 throw new TreeException("no parent node found.current node id is:" + node.getId());
41 }
42 parent.addChild(node);
43 }
44
45 // 電會
46 root.sortAllChidren();
47 }
48
49 /**
50 * 誼欺root准泣
51 *
52 * @return
53 */
54 public Node getRoot() {
55 return root;
56 }
57
58 /**
59 * 功象id誼欺斤哘准泣
60 *
61 * @param id
62 * @return
63 */
64 public Node getNodeById(Integer id) {
65 return nodeHolder.get(id);
66 }
67
68 public void setType(String type) {
69 this.type = type;
70 }
71
72 public void setNodeStore(NodeStore nodeStore) {
73 this.nodeStore = nodeStore;
74 }
75
76 }
云猟塘耗坿鷹 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于基于java实现的多层目录结构 - 编程入门网的所有评论