annotate src/treecms/proto/simple/SimpleNode.java @ 28:64359341c04a

merge added
author ShoshiTAMAKI
date Mon, 08 Nov 2010 17:34:44 +0900
parents 45881237e777
children 8d733b98c5de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
1 package treecms.proto.simple;
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
2
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
3 import java.util.Iterator;
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
4
27
ShoshiTAMAKI
parents: 26
diff changeset
5 import java.util.Collections;
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
6 import java.util.LinkedList;
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
7 import java.util.List;
20
ShoshiTAMAKI
parents: 8
diff changeset
8 import treecms.proto.api.Node;
25
ShoshiTAMAKI
parents: 23
diff changeset
9 import treecms.proto.api.NodeID;
27
ShoshiTAMAKI
parents: 26
diff changeset
10 import treecms.proto.id.IncrementalNodeID;
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
11
20
ShoshiTAMAKI
parents: 8
diff changeset
12 public class SimpleNode implements Node
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
13 {
26
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
14 private LinkedList<Node> m_children;
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
15
25
ShoshiTAMAKI
parents: 23
diff changeset
16 private NodeID m_id;
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
17 private String m_title,m_class;
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
18
27
ShoshiTAMAKI
parents: 26
diff changeset
19 public SimpleNode()
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
20 {
26
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
21 m_children = new LinkedList<Node>();
27
ShoshiTAMAKI
parents: 26
diff changeset
22
ShoshiTAMAKI
parents: 26
diff changeset
23 m_id = new IncrementalNodeID();
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
24 m_title = "";
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
25 m_class = "";
27
ShoshiTAMAKI
parents: 26
diff changeset
26 }
ShoshiTAMAKI
parents: 26
diff changeset
27
ShoshiTAMAKI
parents: 26
diff changeset
28 private SimpleNode(NodeID _id)
ShoshiTAMAKI
parents: 26
diff changeset
29 {
ShoshiTAMAKI
parents: 26
diff changeset
30 m_children = new LinkedList<Node>();
7
shoshi
parents: 0
diff changeset
31
25
ShoshiTAMAKI
parents: 23
diff changeset
32 m_id = _id;
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
33 m_title = "";
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
34 m_class = "";
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
35 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
36
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
37 @Override
27
ShoshiTAMAKI
parents: 26
diff changeset
38 public List<Node> getChildren()
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
39 {
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
40 // TODO Auto-generated method stub
27
ShoshiTAMAKI
parents: 26
diff changeset
41 // return unmodifiable list<node>
ShoshiTAMAKI
parents: 26
diff changeset
42 return Collections.unmodifiableList(m_children);
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
43 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
44
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
45 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
46 public boolean isChild(Node _child)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
47 {
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
48 // TODO Auto-generated method stub
26
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
49 return m_children.contains(_child);
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
50 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
51
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
52 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
53 public Node addChild(Node _child)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
54 {
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
55 // TODO Auto-generated method stub
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
56 if(m_children.contains(_child)){
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
57 throw new IllegalArgumentException("the node already contains "+_child.getTitle()+":"+_child.getID());
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
58 }
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
59 m_children.add(_child);
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
60 return _child;
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
61 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
62
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
63 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
64 public boolean removeChild(Node _child)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
65 {
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
66 // TODO Auto-generated method stub
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
67 return m_children.remove(_child);
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
68 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
69
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
70 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
71 public void up(Node _child)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
72 {
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
73 // TODO Auto-generated method stub
26
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
74 int curPos = m_children.indexOf(_child);
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
75 if(curPos - 1 > 0){
26
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
76 m_children.add(curPos - 1,m_children.remove(curPos));
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
77 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
78 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
79
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
80 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
81 public void down(Node _child)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
82 {
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
83 // TODO Auto-generated method stub
26
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
84 int curPos = m_children.indexOf(_child);
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
85 if(curPos + 1 < m_children.size()){
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
86 m_children.add(curPos + 1,m_children.remove(curPos));
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
87 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
88 }
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
89
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
90 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
91 public Iterator<Node> iterator()
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
92 {
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
93 // TODO Auto-generated method stub
27
ShoshiTAMAKI
parents: 26
diff changeset
94 // return unmodifiable iterator
ShoshiTAMAKI
parents: 26
diff changeset
95 return Collections.unmodifiableList(m_children).iterator();
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
96 }
21
cce963b8a4fd EditableTreeBuilderTest1
ShoshiTAMAKI
parents: 20
diff changeset
97
23
a3f8f5da4947 modify SimpleNode compatible for multithread
ShoshiTAMAKI
parents: 21
diff changeset
98 @Override
25
ShoshiTAMAKI
parents: 23
diff changeset
99 public NodeID getID()
21
cce963b8a4fd EditableTreeBuilderTest1
ShoshiTAMAKI
parents: 20
diff changeset
100 {
25
ShoshiTAMAKI
parents: 23
diff changeset
101 return this.m_id;
21
cce963b8a4fd EditableTreeBuilderTest1
ShoshiTAMAKI
parents: 20
diff changeset
102 }
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
103
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
104 public void addChildren(List<Node> _children)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
105 {
26
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
106 // TODO Auto-generated method stub
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
107 this.m_children.addAll(_children);
9b91329e8a04 commit for zemi , doent move
ShoshiTAMAKI
parents: 25
diff changeset
108 }
27
ShoshiTAMAKI
parents: 26
diff changeset
109
ShoshiTAMAKI
parents: 26
diff changeset
110
ShoshiTAMAKI
parents: 26
diff changeset
111 @Override
ShoshiTAMAKI
parents: 26
diff changeset
112 public Node cloneNode()
ShoshiTAMAKI
parents: 26
diff changeset
113 {
ShoshiTAMAKI
parents: 26
diff changeset
114 // TODO Auto-generated method stub
ShoshiTAMAKI
parents: 26
diff changeset
115 SimpleNode clone = new SimpleNode(m_id.update());
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
116 clone.setTitle(getTitle());
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
117 clone.setClassName(getClassName());
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
118 clone.addChildren(m_children);
27
ShoshiTAMAKI
parents: 26
diff changeset
119 return clone;
ShoshiTAMAKI
parents: 26
diff changeset
120 }
ShoshiTAMAKI
parents: 26
diff changeset
121
ShoshiTAMAKI
parents: 26
diff changeset
122 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
123 public String getTitle()
27
ShoshiTAMAKI
parents: 26
diff changeset
124 {
ShoshiTAMAKI
parents: 26
diff changeset
125 // TODO Auto-generated method stub
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
126 return m_title;
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
127 }
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
128
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
129 @Override
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
130 public void setTitle(String _title)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
131 {
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
132 // TODO Auto-generated method stub
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
133 m_title = _title;
27
ShoshiTAMAKI
parents: 26
diff changeset
134 }
ShoshiTAMAKI
parents: 26
diff changeset
135
ShoshiTAMAKI
parents: 26
diff changeset
136 @Override
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
137 public String getClassName()
27
ShoshiTAMAKI
parents: 26
diff changeset
138 {
ShoshiTAMAKI
parents: 26
diff changeset
139 // TODO Auto-generated method stub
28
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
140 return m_class;
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
141 }
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
142
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
143 @Override
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
144 public void setClassName(String _class)
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
145 {
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
146 // TODO Auto-generated method stub
64359341c04a merge added
ShoshiTAMAKI
parents: 27
diff changeset
147 m_class = _class;
27
ShoshiTAMAKI
parents: 26
diff changeset
148 }
0
f815c7c1fb38 hg init
shoshi
parents:
diff changeset
149 }