annotate src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java @ 14:54ac3718ab24

Merge with 2ecced39700771cf42011cd7c576b41cc836336c
author one
date Mon, 27 Oct 2014 00:16:44 +0900
parents f93d15042315 2ecced397007
children 5ef4b1004ade
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
1 package jp.ac.u_ryukyu.cr.ie.tatsuki.bbs;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
2
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
3 import java.util.Iterator;
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
4 import java.util.LinkedList;
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
5 import java.util.regex.Matcher;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
6 import java.util.regex.Pattern;
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
15
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
16 public class JuGrix {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
17
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
18 JungleTree personTree;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
19 JungleTree organizationTree;
12
f93d15042315 fix bag
one
parents: 11
diff changeset
20 JungleTree roleTree;
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
21 public JuGrix(){
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
22 try{
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
23 loadXml reader = new loadXml();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
24 personTree = reader.loadTestData("Person.xml");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
25 organizationTree = reader.loadTestData("Organization.xml");
12
f93d15042315 fix bag
one
parents: 11
diff changeset
26 roleTree = reader.loadTestData("Role.xml");
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
27 } catch (Exception e) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
28 e.printStackTrace();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
29 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
30 }
12
f93d15042315 fix bag
one
parents: 11
diff changeset
31
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
32 public boolean isActive(String id){
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
33
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
34 InterfaceTraverser ifTraverser = personTree.getTraverser();
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
35 Iterator<Pair<TreeNode,NodePath>> pairIterator = ifTraverser.find(
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
36 (TreeNode node) -> {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
37 String personId = node.getAttributes().getString("id");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
38 if (personId == null)
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
39 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
40 if (personId.equals(id))
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
41 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
42 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
43 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
44 ,"id",id);
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
45
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
46 if (pairIterator.hasNext())
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
47 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
48 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
49
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
50 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
51
12
f93d15042315 fix bag
one
parents: 11
diff changeset
52 public Iterator<String> personIds(String orgId, LinkedList<String> roleIds){
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
53
12
f93d15042315 fix bag
one
parents: 11
diff changeset
54 LinkedList<String> names = personIdsSearch(orgId, roleIds);
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
55 return names.iterator();
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
56 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
57
12
f93d15042315 fix bag
one
parents: 11
diff changeset
58 public Iterator<String> personIds(LinkedList<String> orgIds ,LinkedList<String> roleIds){
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
59
13
one
parents: 11
diff changeset
60 LinkedList<String> personIds = new LinkedList<String>();
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
61
12
f93d15042315 fix bag
one
parents: 11
diff changeset
62 for (String orgId : orgIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
63 personIds.addAll(personIdsSearch(orgId, roleIds));
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
64 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
65 return personIds.iterator();
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
66 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
67
12
f93d15042315 fix bag
one
parents: 11
diff changeset
68 private LinkedList<String> personIdsSearch(String id, LinkedList<String> roleIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
69
f93d15042315 fix bag
one
parents: 11
diff changeset
70 if (!filter(id, roleIds))
f93d15042315 fix bag
one
parents: 11
diff changeset
71 return new LinkedList<String>();
f93d15042315 fix bag
one
parents: 11
diff changeset
72
f93d15042315 fix bag
one
parents: 11
diff changeset
73 InterfaceTraverser personTraverser = personTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
74 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = personTraverser.find(
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
75 (TreeNode node) -> {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
76 String personId = node.getAttributes().getString("element");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
77 if (personId == null)
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
78 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
79 if (personId.equals("Person"))
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
80 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
81 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
82 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
83 ,"element","Person");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
84
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
85 LinkedList<String> names = new LinkedList<String>();
12
f93d15042315 fix bag
one
parents: 11
diff changeset
86
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
87 for (;pairPersonIterator.hasNext();) {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
88
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
89 Pair<TreeNode, NodePath> pairPerson = pairPersonIterator.next();
12
f93d15042315 fix bag
one
parents: 11
diff changeset
90 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = personTraverser.find(
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
91 (TreeNode node) -> {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
92 String personId = node.getAttributes().getString("text");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
93 if (personId == null)
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
94 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
95 if (personId.equals(id))
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
96 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
97 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
98 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
99 ,pairPerson.left(),"text",id);
12
f93d15042315 fix bag
one
parents: 11
diff changeset
100
f93d15042315 fix bag
one
parents: 11
diff changeset
101 if (pairIdIterator.hasNext()) {
f93d15042315 fix bag
one
parents: 11
diff changeset
102 String name = pairPerson.left().getAttributes().getString("id");
f93d15042315 fix bag
one
parents: 11
diff changeset
103 names.add(name);
f93d15042315 fix bag
one
parents: 11
diff changeset
104 }
f93d15042315 fix bag
one
parents: 11
diff changeset
105 }
f93d15042315 fix bag
one
parents: 11
diff changeset
106 return names;
f93d15042315 fix bag
one
parents: 11
diff changeset
107 }
f93d15042315 fix bag
one
parents: 11
diff changeset
108
f93d15042315 fix bag
one
parents: 11
diff changeset
109
f93d15042315 fix bag
one
parents: 11
diff changeset
110 public boolean filter(String orgId, LinkedList<String> roleIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
111 if (roleIds == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
112 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
113
f93d15042315 fix bag
one
parents: 11
diff changeset
114 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
115
f93d15042315 fix bag
one
parents: 11
diff changeset
116 Iterator<Pair<TreeNode,NodePath>> orgNodeIterator = orgTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
117 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
118 String personId = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
119 if (personId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
120 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
121 if (!personId.equals("Organization"))
f93d15042315 fix bag
one
parents: 11
diff changeset
122 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
123 String compareOrgId = node.getAttributes().getString("id");
f93d15042315 fix bag
one
parents: 11
diff changeset
124 if (orgId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
125 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
126 if (compareOrgId.equals(orgId))
f93d15042315 fix bag
one
parents: 11
diff changeset
127 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
128 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
129 }
f93d15042315 fix bag
one
parents: 11
diff changeset
130 ,"element","orgId");
f93d15042315 fix bag
one
parents: 11
diff changeset
131
f93d15042315 fix bag
one
parents: 11
diff changeset
132 if (!orgNodeIterator.hasNext())
f93d15042315 fix bag
one
parents: 11
diff changeset
133 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
134
f93d15042315 fix bag
one
parents: 11
diff changeset
135 TreeNode searchNode = orgNodeIterator.next().left();
f93d15042315 fix bag
one
parents: 11
diff changeset
136
f93d15042315 fix bag
one
parents: 11
diff changeset
137 for (String id : roleIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
138 Pattern personPattern = Pattern.compile("r:");
f93d15042315 fix bag
one
parents: 11
diff changeset
139 Matcher personMacher = personPattern.matcher(id);
f93d15042315 fix bag
one
parents: 11
diff changeset
140 if (personMacher.find()) {
f93d15042315 fix bag
one
parents: 11
diff changeset
141 if (!roleFilter(id , searchNode))
f93d15042315 fix bag
one
parents: 11
diff changeset
142 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
143 }
f93d15042315 fix bag
one
parents: 11
diff changeset
144
f93d15042315 fix bag
one
parents: 11
diff changeset
145 Pattern organizationPattern = Pattern.compile("rde:");
f93d15042315 fix bag
one
parents: 11
diff changeset
146 Matcher organizationMacher = organizationPattern.matcher(id);
f93d15042315 fix bag
one
parents: 11
diff changeset
147 if (organizationMacher.find()) {
f93d15042315 fix bag
one
parents: 11
diff changeset
148 if (!rdeFilter(id,searchNode))
f93d15042315 fix bag
one
parents: 11
diff changeset
149 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
150 }
f93d15042315 fix bag
one
parents: 11
diff changeset
151 }
f93d15042315 fix bag
one
parents: 11
diff changeset
152 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
153 }
f93d15042315 fix bag
one
parents: 11
diff changeset
154
f93d15042315 fix bag
one
parents: 11
diff changeset
155 private boolean rdeFilter(String id, TreeNode targetNode) {
f93d15042315 fix bag
one
parents: 11
diff changeset
156
f93d15042315 fix bag
one
parents: 11
diff changeset
157 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
158 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
159 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
160 String element = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
161 if (element == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
162 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
163 if (!element.equals("roleRefId"))
f93d15042315 fix bag
one
parents: 11
diff changeset
164 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
165 String roleId = node.getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
166 if (roleId != null)
f93d15042315 fix bag
one
parents: 11
diff changeset
167 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
168 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
169 }
f93d15042315 fix bag
one
parents: 11
diff changeset
170 ,targetNode,"element","roleRefId");
f93d15042315 fix bag
one
parents: 11
diff changeset
171
f93d15042315 fix bag
one
parents: 11
diff changeset
172 TreeMap<String, String> idMap = TreeMap.empty(Ord.stringOrd);
f93d15042315 fix bag
one
parents: 11
diff changeset
173 for (; pairIdIterator.hasNext();) {
f93d15042315 fix bag
one
parents: 11
diff changeset
174 String roleId = pairIdIterator.next().left().getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
175 idMap = idMap.set(roleId,roleId);
f93d15042315 fix bag
one
parents: 11
diff changeset
176 }
f93d15042315 fix bag
one
parents: 11
diff changeset
177
f93d15042315 fix bag
one
parents: 11
diff changeset
178 Iterator<P2<String, String>> ids = idMap.iterator();
f93d15042315 fix bag
one
parents: 11
diff changeset
179 InterfaceTraverser roleTraverser = roleTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
180
f93d15042315 fix bag
one
parents: 11
diff changeset
181 for (;ids.hasNext();) {
f93d15042315 fix bag
one
parents: 11
diff changeset
182 String roleId = ids.next()._1();
f93d15042315 fix bag
one
parents: 11
diff changeset
183 Iterator<Pair<TreeNode,NodePath>> roleNodeIterator = roleTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
184 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
185 String element = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
186 if (element == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
187 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
188 if (!element.equals("Role"))
f93d15042315 fix bag
one
parents: 11
diff changeset
189 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
190 String compareRoleId = node.getAttributes().getString("id");
f93d15042315 fix bag
one
parents: 11
diff changeset
191 if (compareRoleId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
192 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
193 if (compareRoleId.equals(roleId))
f93d15042315 fix bag
one
parents: 11
diff changeset
194 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
195 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
196 }
f93d15042315 fix bag
one
parents: 11
diff changeset
197 ,"id",roleId);
f93d15042315 fix bag
one
parents: 11
diff changeset
198
f93d15042315 fix bag
one
parents: 11
diff changeset
199 for (;roleNodeIterator.hasNext();) {
f93d15042315 fix bag
one
parents: 11
diff changeset
200 TreeNode roleNode = roleNodeIterator.next().left();
f93d15042315 fix bag
one
parents: 11
diff changeset
201 Iterator<Pair<TreeNode,NodePath>> rdeNodeIterator = roleTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
202 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
203 String elementName = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
204 if (elementName == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
205 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
206 if (!elementName.equals("roleDescriptionElementRefIds"))
f93d15042315 fix bag
one
parents: 11
diff changeset
207 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
208 String rdeId = node.getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
209 if (rdeId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
210 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
211 Pattern personPattern = Pattern.compile(id);
f93d15042315 fix bag
one
parents: 11
diff changeset
212 Matcher personMacher = personPattern.matcher(rdeId);
f93d15042315 fix bag
one
parents: 11
diff changeset
213 if (personMacher.find())
f93d15042315 fix bag
one
parents: 11
diff changeset
214 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
215 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
216 }
f93d15042315 fix bag
one
parents: 11
diff changeset
217 ,roleNode,"text",id);
f93d15042315 fix bag
one
parents: 11
diff changeset
218
f93d15042315 fix bag
one
parents: 11
diff changeset
219 if (!rdeNodeIterator.hasNext())
f93d15042315 fix bag
one
parents: 11
diff changeset
220 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
221 }
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
222
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
223 }
12
f93d15042315 fix bag
one
parents: 11
diff changeset
224 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
225 }
f93d15042315 fix bag
one
parents: 11
diff changeset
226
f93d15042315 fix bag
one
parents: 11
diff changeset
227 public boolean roleFilter(String id, TreeNode orgNode) {
f93d15042315 fix bag
one
parents: 11
diff changeset
228
f93d15042315 fix bag
one
parents: 11
diff changeset
229 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
230
f93d15042315 fix bag
one
parents: 11
diff changeset
231 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
232 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
233 String elementName = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
234 if (elementName == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
235 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
236 if (!elementName.equals("roleRefId"))
f93d15042315 fix bag
one
parents: 11
diff changeset
237 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
238 String roleId = node.getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
239 if (roleId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
240 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
241 if (roleId.equals(id))
f93d15042315 fix bag
one
parents: 11
diff changeset
242 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
243 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
244 }
f93d15042315 fix bag
one
parents: 11
diff changeset
245 ,orgNode,"text",id);
f93d15042315 fix bag
one
parents: 11
diff changeset
246
f93d15042315 fix bag
one
parents: 11
diff changeset
247 if (pairIdIterator.hasNext()){
f93d15042315 fix bag
one
parents: 11
diff changeset
248 System.out.println(pairIdIterator.next().left().getAttributes().getString("text"));
f93d15042315 fix bag
one
parents: 11
diff changeset
249 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
250 }
f93d15042315 fix bag
one
parents: 11
diff changeset
251 return false;
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
252 }
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
253
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
254 public Iterator<String> roleIds(String id) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
255 Pattern personPattern = Pattern.compile("p:");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
256 Matcher personMacher = personPattern.matcher(id);
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
257 if (personMacher.find()) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
258 return searchRoleIds(personTree, id, "Person");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
259 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
260
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
261 Pattern organizationPattern = Pattern.compile("o:");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
262 Matcher organizationMacher = organizationPattern.matcher(id);
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
263 if (organizationMacher.find()) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
264 return searchRoleIds(organizationTree, id, "Organization");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
265 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
266
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
267 return null;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
268 }
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
269
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
270 public Iterator<String> searchRoleIds(JungleTree tree, String id, String element){
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
271
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
272 InterfaceTraverser ifTraverser = tree.getTraverser();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
273 Iterator<Pair<TreeNode,NodePath>> searchTargetIterator = ifTraverser.find(
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
274 (TreeNode node) -> {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
275 String nodeElement = node.getAttributes().getString("element");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
276 if (nodeElement == null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
277 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
278 if (!nodeElement.equals(element))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
279 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
280 String nodeId = node.getAttributes().getString("id");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
281 if (nodeId == null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
282 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
283 if (nodeId.equals(id))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
284 return true;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
285 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
286 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
287 ,"id",id);
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
288
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
289 LinkedList<String> ids = new LinkedList<String>();
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
290
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
291 for (;searchTargetIterator.hasNext();) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
292
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
293 Pair<TreeNode, NodePath> searchTargetPair = searchTargetIterator.next();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
294 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = ifTraverser.find(
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
295 (TreeNode node) -> {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
296 String nodeElement = node.getAttributes().getString("element");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
297 if (nodeElement == null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
298 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
299 if (!nodeElement.equals("roleRefId"))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
300 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
301 String nodeId = node.getAttributes().getString("text");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
302 if (nodeId != null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
303 return true;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
304 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
305 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
306 ,searchTargetPair.left());
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
307
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
308
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
309 for (;pairIdIterator.hasNext();){
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
310 Pair<TreeNode, NodePath> idNodePath = pairIdIterator.next();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
311 String attribute = idNodePath.left().getAttributes().getString("text");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
312
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
313 Iterator<String> checkList = ids.iterator();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
314 for (;checkList.hasNext();) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
315 if(checkList.next().equals(attribute))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
316 attribute = null;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
317 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
318
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
319 if (attribute != null) {
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
320 ids.add(attribute);
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
321 System.out.println("-------------------------" + attribute + "-------------------------");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
322 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
323 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
324 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
325 return ids.iterator();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
326 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
327
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
328
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
329 public Iterator<String> competentRoleId(String personId) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
330
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
331 InterfaceTraverser ifTraverser = personTree.getTraverser();
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
332 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = searchPerson(personId, ifTraverser);
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
333
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
334 if (!pairPersonIterator.hasNext())
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
335 return new NullIterator();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
336 TreeNode person = pairPersonIterator.next().left();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
337
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
338 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.find(
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
339 (TreeNode node) -> {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
340 String nodeElement = node.getAttributes().getString("element");
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
341 if (nodeElement == null)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
342 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
343 if (!nodeElement.equals("priority"))
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
344 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
345 String priority = node.getAttributes().getString("text");
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
346 if (priority == null)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
347 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
348 if (priority.equals("0"))
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
349 return true;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
350 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
351 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
352 ,person);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
353
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
354
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
355 LinkedList<String> idList = new LinkedList<String>();
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
356 for (;targetPairIterator.hasNext();) {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
357 NodePath searchPath = targetPairIterator.next().right();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
358 Pair<Integer, NodePath> searchPair = searchPath.last();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
359 NodePath targetPath = searchPair.right().add(searchPair.left() + 1);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
360 TreeNode targetNode = getTarget(person, targetPath);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
361 String id = targetNode.getAttributes().getString("text");
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
362 idList.add(id);
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
363 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
364
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
365 return idList.iterator();
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
366 }
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
367
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
368
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
369 public Iterator<String> concurrentRoleIds(String personId) {
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
370
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
371 InterfaceTraverser ifTraverser = personTree.getTraverser();
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
372 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = searchPerson(
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
373 personId, ifTraverser);
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
374
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
375 if (!pairPersonIterator.hasNext())
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
376 return new NullIterator();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
377 TreeNode person = pairPersonIterator.next().left();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
378
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
379 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.find(
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
380 (TreeNode node) -> {
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
381 String nodeElement = node.getAttributes().getString("element");
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
382 if (nodeElement == null)
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
383 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
384 if (!nodeElement.equals("priority"))
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
385 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
386 String priority = node.getAttributes().getString("text");
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
387 if (priority == null)
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
388 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
389 if (!priority.equals("0"))
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
390 return true;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
391 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
392 }
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
393 ,person);
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
394
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
395
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
396 LinkedList<String> idList = new LinkedList<String>();
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
397 for (;targetPairIterator.hasNext();) {
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
398 NodePath searchPath = targetPairIterator.next().right();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
399 Pair<Integer, NodePath> searchPair = searchPath.last();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
400 NodePath targetPath = searchPair.right().add(searchPair.left() + 1);
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
401 TreeNode targetNode = getTarget(person, targetPath);
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
402 String id = targetNode.getAttributes().getString("text");
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
403 idList.add(id);
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
404 }
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
405
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
406 return idList.iterator();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
407 }
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
408 private Iterator<Pair<TreeNode, NodePath>> searchPerson(String personId,
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
409 InterfaceTraverser ifTraverser) {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
410 Iterator<Pair<TreeNode,NodePath>> pairPersonIterator = ifTraverser.find(
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
411 (TreeNode node) -> {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
412 String nodeElement = node.getAttributes().getString("element");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
413 if (nodeElement == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
414 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
415 if (!nodeElement.equals("Person"))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
416 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
417 String nodeId = node.getAttributes().getString("id");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
418 if (nodeId == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
419 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
420 if (nodeId.equals(personId))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
421 return true;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
422 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
423 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
424 ,"element","Person");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
425 return pairPersonIterator;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
426 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
427
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
428
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
429 public Iterator<String> childOrganizationIds(String orgId) {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
430 InterfaceTraverser ifTraverser = organizationTree.getTraverser();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
431 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = searchOrganization(orgId, ifTraverser);
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
432
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
433 if (!pairPersonIterator.hasNext())
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
434 return new NullIterator();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
435 TreeNode person = pairPersonIterator.next().left();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
436
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
437 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdsIterator = ifTraverser.find(
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
438 (TreeNode node) -> {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
439 String nodeElement = node.getAttributes().getString("element");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
440 if (nodeElement == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
441 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
442 if (nodeElement.equals("childOrganizations"))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
443 return true;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
444 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
445 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
446 ,person);
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
447
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
448 if (!chilrenOrgIdsIterator.hasNext())
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
449 return new NullIterator();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
450
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
451 TreeNode chilerenOrgIds = chilrenOrgIdsIterator.next().left();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
452
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
453 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdIterator = ifTraverser.find(
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
454 (TreeNode node) -> {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
455 String nodeElement = node.getAttributes().getString("element");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
456 if (nodeElement == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
457 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
458 if (!nodeElement.equals("organizationRefIds"))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
459 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
460 nodeElement = node.getAttributes().getString("text");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
461 if (nodeElement != null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
462 return true;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
463 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
464 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
465 ,person);
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
466
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
467 LinkedList<String> ids = new LinkedList<String>();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
468
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
469 for (;chilrenOrgIdIterator.hasNext();) {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
470 ids.add(chilrenOrgIdIterator.next().left().getAttributes().getString("text"));
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
471 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
472
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
473 return ids.iterator();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
474 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
475
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
476
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
477 private Iterator<Pair<TreeNode, NodePath>> searchOrganization(String orgId,
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
478 InterfaceTraverser ifTraverser) {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
479 Iterator<Pair<TreeNode,NodePath>> pairPersonIterator = ifTraverser.find(
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
480 (TreeNode node) -> {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
481 String nodeElement = node.getAttributes().getString("element");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
482 if (nodeElement == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
483 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
484 if (!nodeElement.equals("Organization"))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
485 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
486 String nodeId = node.getAttributes().getString("id");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
487 if (nodeId == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
488 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
489 if (nodeId.equals(orgId))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
490 return true;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
491 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
492 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
493 ,"element","Organization");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
494 return pairPersonIterator;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
495 }
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
496
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
497 public TreeNode getTarget(TreeNode node , NodePath path){
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
498 TreeNode target;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
499 Pair<Integer, NodePath> pathNode = path.pop();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
500 int num = pathNode.left();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
501 NodePath newPath = pathNode.right();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
502 if (num == -1 && newPath.size() != 0)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
503 return getTarget(node, newPath);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
504
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
505 Either<Error, TreeNode> either = node.getChildren().at(num);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
506 if (either.isA())
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
507 return node;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
508
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
509 TreeNode child = either.b();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
510 if (pathNode.right().size() == 0)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
511 return child;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
512
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
513 target = getTarget(child,pathNode.right());
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
514 return target;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
515 }
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
516
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
517 class NullIterator implements Iterator<String>{
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
518
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
519 @Override
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
520 public boolean hasNext() {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
521 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
522 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
523
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
524 @Override
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
525 public String next() {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
526 return null;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
527 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
528
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
529 }
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
530
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
531
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
532 }