comparison src/treecms/memory/OnMemoryNode.java @ 4:f5ed85be5640

finished treecms.cassandra.v1 implementation (not tested yet)
author shoshi
date Thu, 24 Feb 2011 21:30:18 +0900
parents 4a5ee88f02cf
children fc19e38b669b
comparison
equal deleted inserted replaced
3:5fa718b63cd5 4:f5ed85be5640
7 import treecms.api.NodeData; 7 import treecms.api.NodeData;
8 import treecms.api.NodeID; 8 import treecms.api.NodeID;
9 9
10 public class OnMemoryNode implements Node 10 public class OnMemoryNode implements Node
11 { 11 {
12 OnMemoryForest m_forest;
13
12 NodeID m_id; 14 NodeID m_id;
13 OnMemoryForest m_forest;
14 NodeData m_data; 15 NodeData m_data;
15 16
16 public OnMemoryNode(OnMemoryForest _forest,NodeID _id) 17 public OnMemoryNode(OnMemoryForest _forest,NodeID _id,NodeData _newData)
17 { 18 {
18 m_id = _id; 19 m_id = _id;
19 m_forest = _forest; 20 m_forest = _forest;
20 m_data = new NodeDataImpl(); 21 m_data = (_newData != null) ? _newData.deepCopy() : new NodeData();
21 } 22 }
22 23
23 @Override 24 @Override
24 public Forest getForest() 25 public Forest getForest()
25 { 26 {
35 @Override 36 @Override
36 public NodeData getData() 37 public NodeData getData()
37 { 38 {
38 return m_data; 39 return m_data;
39 } 40 }
40
41 @Override
42 public NodeData newData()
43 {
44 return new NodeDataImpl();
45 }
46
47 class NodeDataImpl implements NodeData
48 {
49 List<Node> m_children;
50 String m_value;
51
52 public NodeDataImpl()
53 {
54 m_children = new LinkedList<Node>();
55 }
56
57 @Override
58 public List<Node> list()
59 {
60 return m_children;
61 }
62
63 @Override
64 public String get()
65 {
66 return m_value;
67 }
68
69 @Override
70 public void set(String _str)
71 {
72 m_value = _str;
73 }
74
75 @Override
76 public void add(List<Node> _child)
77 {
78 m_children.addAll(_child);
79 }
80
81 @Override
82 public void del(List<Node> _child)
83 {
84 m_children.removeAll(_child);
85 }
86
87 @Override
88 public void clear()
89 {
90 m_children.clear();
91 }
92
93 }
94 } 41 }