Mercurial > hg > Members > tatsuki > JungleXMLReader
annotate src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java @ 45:8e531233d376 default tip
commit
author | one |
---|---|
date | Wed, 26 Nov 2014 06:23:40 +0900 |
parents | 5e8eac03fed3 |
children |
rev | line source |
---|---|
7 | 1 package jp.ac.u_ryukyu.cr.ie.tatsuki.bbs; |
2 | |
3 import java.util.Iterator; | |
11 | 4 import java.util.LinkedList; |
42 | 5 import java.util.Stack; |
8 | 6 import java.util.regex.Matcher; |
7 import java.util.regex.Pattern; | |
7 | 8 |
32 | 9 import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.LoadXml; |
15 | 10 import fj.Ord; |
11 import fj.P2; | |
12 import fj.data.TreeMap; | |
7 | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; | |
42 | 16 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex; |
7 | 17 |
18 public class JuGrix { | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
19 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
20 JungleTree personTree; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
21 JungleTree organizationTree; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
22 JungleTree roleTree; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
23 JungleTree rdeTree; |
45 | 24 boolean useIndex; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
25 |
45 | 26 public JuGrix(boolean useIndex) { |
28 | 27 |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
28 try { |
45 | 29 this.useIndex = useIndex; |
32 | 30 LoadXml reader = new LoadXml(); |
42 | 31 personTree = reader.loadTestData("Person.xml"); |
32 organizationTree = reader.loadTestData("Organization.xml"); | |
33 roleTree = reader.loadTestData("Role.xml"); | |
34 rdeTree = reader.loadTestData("RoleDescriptionElement.xml"); | |
45 | 35 } catch (Exception e) { |
36 e.printStackTrace(); | |
37 } | |
38 } | |
29 | 39 |
45 | 40 public JuGrix(boolean useIndex, JungleTree personTree, JungleTree organizationTree, JungleTree roleTree) { |
41 | |
42 try { | |
43 this.useIndex = useIndex; | |
44 LoadXml reader = new LoadXml(); | |
45 this.personTree = personTree; | |
46 this.organizationTree = organizationTree; | |
47 this.roleTree = roleTree; | |
48 rdeTree = reader.loadTestData("RoleDescriptionElement.xml"); | |
49 | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
50 } catch (Exception e) { |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
51 e.printStackTrace(); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
52 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
53 } |
41 | 54 |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
55 public boolean isActive(String id) { |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
56 |
45 | 57 InterfaceTraverser personTraverser = personTree.getTraverser(useIndex); |
42 | 58 Iterator<TreeNode> personIdpairIterator = personTraverser.find((TreeNode node) -> { |
30 | 59 String personId = node.getAttributes().getString("Person-id"); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
60 if (personId == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
61 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
62 if (personId.equals(id)) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
63 return true; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
64 return false; |
30 | 65 }, "Person-id", id); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
66 |
34 | 67 if (personIdpairIterator.hasNext()) |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
68 return true; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
69 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
70 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
71 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
72 |
42 | 73 public Iterator<String> personIds(String orgId, LinkedList<String> filterIds) { |
74 | |
45 | 75 InterfaceTraverser orgTraverser = organizationTree.getTraverser(useIndex); |
33 | 76 |
42 | 77 Iterator<TreeNode> orgIdNodeIterator = orgTraverser.find((TreeNode node) -> { |
78 String nodeElement = node.getAttributes().getString("element"); | |
79 if (nodeElement == null) | |
80 return false; | |
81 if (!nodeElement.equals("Organization")) | |
82 return false; | |
83 String targetOrgId = node.getAttributes().getString("Organization-id"); | |
84 if (targetOrgId == null) | |
85 return false; | |
86 if (targetOrgId.equals(orgId)) | |
87 return true; | |
88 return false; | |
89 }, "Organization-id", orgId); | |
41 | 90 |
42 | 91 if (!orgIdNodeIterator.hasNext()) |
92 return new NullIterator<String>(); | |
33 | 93 |
42 | 94 TreeNode orgIdNode = orgIdNodeIterator.next(); |
95 TreeNode orgRoleIdNodes = orgIdNode.getChildren().at(2).b(); | |
96 TreeNode orgRoleIdNode = orgRoleIdNodes.getChildren().at(0).b(); | |
97 String orgRoleId = orgRoleIdNode.getAttributes().getString("text-roleRefId"); | |
98 if (!filter(filterIds, orgRoleId)) | |
99 return new NullIterator<String>(); | |
100 | |
45 | 101 InterfaceTraverser traverser = personTree.getTraverser(useIndex); |
31 | 102 |
42 | 103 return new Iterator<String>() { |
104 Iterator<TreeNode> orgIdNodeIterator = traverser.find((TreeNode node) -> { | |
105 String nodeElement = node.getAttributes().getString("element"); | |
106 if (nodeElement == null) | |
107 return false; | |
108 if (!nodeElement.equals("organizationRefId")) | |
109 return false; | |
110 String targetOrgId = node.getAttributes().getString("text-organizationRefId"); | |
111 if (targetOrgId == null) | |
112 return false; | |
113 if (targetOrgId.equals(orgId)) | |
114 return true; | |
115 return false; | |
116 }, "text-organizationRefId", orgId); | |
31 | 117 |
42 | 118 String targetPersonId; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
119 |
31 | 120 @Override |
121 public boolean hasNext() { | |
42 | 122 for (; orgIdNodeIterator.hasNext();) { |
123 TreeNode orgIdNode = orgIdNodeIterator.next(); | |
124 ParentIndex parentIndex = traverser.getParentIndex(); | |
125 TreeNode OrganizationMappedByRoleNode = parentIndex.get(orgIdNode); | |
126 TreeNode parentOrganizations = parentIndex.get(OrganizationMappedByRoleNode); | |
127 TreeNode targetPersonIdNode = parentIndex.get(parentOrganizations); | |
128 targetPersonId = targetPersonIdNode.getAttributes().getString("Person-id"); | |
31 | 129 return true; |
34 | 130 } |
31 | 131 return false; |
132 } | |
133 | |
134 @Override | |
135 public String next() { | |
42 | 136 return targetPersonId; |
31 | 137 } |
138 | |
139 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
140 } |
41 | 141 |
42 | 142 public Iterator<String> roleIds(String id, LinkedList<String> filterIds) { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
143 Pattern personPattern = Pattern.compile("p:"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
144 Matcher personMacher = personPattern.matcher(id); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
145 if (personMacher.find()) { |
42 | 146 return searchPersonRoleIds(personTree, id, "Person", filterIds); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
147 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
148 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
149 Pattern organizationPattern = Pattern.compile("o:"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
150 Matcher organizationMacher = organizationPattern.matcher(id); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
151 if (organizationMacher.find()) { |
42 | 152 return searchOrgRoleIds(organizationTree, id, "Organization", filterIds); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
153 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
154 |
42 | 155 return new NullIterator<String>(); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
156 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
157 |
42 | 158 public Iterator<String> searchPersonRoleIds(JungleTree tree, String id, String element, LinkedList<String> filterIds) { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
159 |
45 | 160 InterfaceTraverser traverser = tree.getTraverser(useIndex); |
34 | 161 |
42 | 162 return new Iterator<String>() { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
163 |
42 | 164 String roleRefId = ""; |
165 Iterator<TreeNode> idNodeIterator = traverser.find((TreeNode node) -> { | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
166 String nodeElement = node.getAttributes().getString("element"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
167 if (nodeElement == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
168 return false; |
42 | 169 if (!nodeElement.equals(element)) |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
170 return false; |
42 | 171 String nodeId = node.getAttributes().getString(element + "-id"); |
172 if (nodeId == null) | |
173 return false; | |
174 if (nodeId.equals(id)) | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
175 return true; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
176 return false; |
42 | 177 }, element + "-id", id); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
178 |
42 | 179 Iterator<TreeNode> OrganizationMappedByRoleIterator = getParentOrgs(); |
31 | 180 |
181 @Override | |
182 public boolean hasNext() { | |
42 | 183 |
184 if (OrganizationMappedByRoleIterator == null) | |
185 return false; | |
186 | |
187 if (OrganizationMappedByRoleIterator.hasNext()) | |
188 roleRefId = search(); | |
189 else | |
190 roleRefId = null; | |
191 | |
192 if (roleRefId != null) | |
193 return true; | |
194 | |
195 OrganizationMappedByRoleIterator = getParentOrgs(); | |
196 if (OrganizationMappedByRoleIterator != null) | |
197 roleRefId = search(); | |
198 | |
199 if (roleRefId != null) | |
31 | 200 return true; |
42 | 201 |
202 return this.hasNext(); | |
203 } | |
204 | |
205 private String search() { | |
206 for (; OrganizationMappedByRoleIterator.hasNext();) { | |
207 TreeNode OrganizationMappedByRole = OrganizationMappedByRoleIterator.next(); | |
208 TreeNode organizationRefIdNode = OrganizationMappedByRole.getChildren().at(0).b(); | |
209 String organizationRefId = organizationRefIdNode.getAttributes().getString("text-organizationRefId"); | |
210 if (!filterIds.contains(organizationRefId)) | |
211 continue; | |
212 | |
213 TreeNode roleRefIdNode = OrganizationMappedByRole.getChildren().at(1).b(); | |
214 return roleRefIdNode.getAttributes().getString("text-roleRefId"); | |
215 } | |
216 OrganizationMappedByRoleIterator = getParentOrgs(); | |
217 | |
218 return null; | |
219 } | |
220 | |
221 private Iterator<TreeNode> getParentOrgs() { | |
222 for (; idNodeIterator.hasNext();) { | |
223 TreeNode targetPersonNode = idNodeIterator.next(); | |
224 TreeNode parentOrganizations = targetPersonNode.getChildren().at(5).b(); | |
225 return parentOrganizations.getChildren().iterator(); | |
226 } | |
227 return null; | |
31 | 228 } |
229 | |
230 @Override | |
231 public String next() { | |
42 | 232 return roleRefId; |
31 | 233 } |
234 | |
235 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
236 } |
33 | 237 |
42 | 238 public Iterator<String> searchOrgRoleIds(JungleTree tree, String id, String element, LinkedList<String> filterIds) { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
239 |
45 | 240 InterfaceTraverser traverser = tree.getTraverser(useIndex); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
241 |
42 | 242 return new Iterator<String>() { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
243 |
42 | 244 String roleRefId = ""; |
245 Iterator<TreeNode> idNodeIterator = traverser.find((TreeNode node) -> { | |
246 String nodeElement = node.getAttributes().getString("element"); | |
247 if (nodeElement == null) | |
248 return false; | |
249 if (!nodeElement.equals(element)) | |
250 return false; | |
251 String nodeId = node.getAttributes().getString(element + "-id"); | |
252 if (nodeId == null) | |
253 return false; | |
254 if (nodeId.equals(id)) | |
255 return true; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
256 return false; |
42 | 257 }, element + "-id", id); |
258 Iterator<TreeNode> OrganizationMappedByRoleIterator = getParentOrgs(); | |
31 | 259 |
260 @Override | |
261 public boolean hasNext() { | |
42 | 262 |
263 if (OrganizationMappedByRoleIterator == null) | |
264 return false; | |
265 if (OrganizationMappedByRoleIterator.hasNext()) | |
266 roleRefId = search(); | |
267 else | |
268 roleRefId = null; | |
269 if (roleRefId != null) | |
270 return true; | |
271 | |
272 OrganizationMappedByRoleIterator = getParentOrgs(); | |
273 if (OrganizationMappedByRoleIterator != null) | |
274 roleRefId = search(); | |
275 | |
276 if (roleRefId != null) | |
31 | 277 return true; |
42 | 278 |
31 | 279 return false; |
280 } | |
281 | |
42 | 282 private String search() { |
283 for (; OrganizationMappedByRoleIterator.hasNext();) { | |
284 TreeNode OrganizationMappedByRole = OrganizationMappedByRoleIterator.next(); | |
285 TreeNode organizationRefIdNode = OrganizationMappedByRole.getChildren().at(0).b(); | |
286 String organizationRefId = organizationRefIdNode.getAttributes().getString("text-organizationRefId"); | |
287 if (!filterIds.contains(organizationRefId)) | |
288 continue; | |
289 | |
290 TreeNode roleRefIdNode = OrganizationMappedByRole.getChildren().at(1).b(); | |
291 return roleRefIdNode.getAttributes().getString("text-roleRefId"); | |
292 } | |
293 OrganizationMappedByRoleIterator = getParentOrgs(); | |
294 | |
295 return null; | |
296 } | |
297 | |
298 private Iterator<TreeNode> getParentOrgs() { | |
299 for (; idNodeIterator.hasNext();) { | |
300 TreeNode targetPersonNode = idNodeIterator.next(); | |
301 TreeNode parentOrganizations = targetPersonNode.getChildren().at(4).b(); | |
302 return parentOrganizations.getChildren().iterator(); | |
303 } | |
304 return null; | |
305 } | |
306 | |
31 | 307 @Override |
308 public String next() { | |
42 | 309 return roleRefId; |
31 | 310 } |
311 | |
312 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
313 } |
33 | 314 |
315 public Iterator<String> competentRoleId(String personId) { | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
316 |
45 | 317 InterfaceTraverser personTraverser = personTree.getTraverser(useIndex); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
318 |
42 | 319 return new Iterator<String>() { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
320 |
42 | 321 String roleId = ""; |
322 Iterator<TreeNode> personNodeIterator = personTraverser.find((TreeNode node) -> { | |
323 String nodeElement = node.getAttributes().getString("element"); | |
324 if (nodeElement == null) | |
325 return false; | |
326 if (!nodeElement.equals("Person")) | |
34 | 327 return false; |
42 | 328 String targetPersonId = node.getAttributes().getString("Person-id"); |
329 if (targetPersonId == null) | |
330 return false; | |
331 if (targetPersonId.equals(personId)) | |
332 return true; | |
33 | 333 return false; |
42 | 334 }, "PersonId", personId); |
335 Iterator<TreeNode> PriorityMappedByRoleIterator = new NullIterator<TreeNode>(); | |
31 | 336 |
337 @Override | |
338 public boolean hasNext() { | |
42 | 339 |
340 for (; PriorityMappedByRoleIterator.hasNext();) { | |
341 if (search()) | |
342 return true; | |
343 } | |
344 | |
345 for (; personNodeIterator.hasNext();) { | |
346 TreeNode personNode = personNodeIterator.next(); | |
347 TreeNode prioritiesNode = personNode.getChildren().at(6).b(); | |
348 PriorityMappedByRoleIterator = prioritiesNode.getChildren().iterator(); | |
349 for (; PriorityMappedByRoleIterator.hasNext();) { | |
350 if (search()) | |
351 return true; | |
352 } | |
353 } | |
31 | 354 return false; |
355 } | |
356 | |
42 | 357 private boolean search() { |
358 TreeNode priorityMappedByRole = PriorityMappedByRoleIterator.next(); | |
359 TreeNode priorityNode = priorityMappedByRole.getChildren().at(0).b(); | |
360 String priority = priorityNode.getAttributes().getString("text-priority"); | |
361 if (priority.equals("0")) { | |
362 TreeNode roleIdNode = priorityMappedByRole.getChildren().at(1).b(); | |
363 roleId = roleIdNode.getAttributes().getString("text-roleRefId"); | |
31 | 364 return true; |
34 | 365 } |
31 | 366 return false; |
367 } | |
368 | |
369 @Override | |
370 public String next() { | |
42 | 371 return roleId; |
33 | 372 } |
373 }; | |
374 } | |
41 | 375 |
376 public Iterator<String> concurrentRoleIds(String personId) { | |
377 | |
45 | 378 InterfaceTraverser personTraverser = personTree.getTraverser(useIndex); |
41 | 379 |
42 | 380 return new Iterator<String>() { |
41 | 381 |
42 | 382 String roleId = ""; |
383 Iterator<TreeNode> personNodeIterator = personTraverser.find((TreeNode node) -> { | |
384 String nodeElement = node.getAttributes().getString("element"); | |
385 if (nodeElement == null) | |
386 return false; | |
387 if (!nodeElement.equals("Person")) | |
41 | 388 return false; |
42 | 389 String targetPersonId = node.getAttributes().getString("Person-id"); |
390 if (targetPersonId == null) | |
391 return false; | |
392 if (targetPersonId.equals(personId)) | |
393 return true; | |
394 return false; | |
395 }, "PersonId", personId); | |
396 Iterator<TreeNode> PriorityMappedByRoleIterator = new NullIterator<TreeNode>(); | |
41 | 397 |
398 @Override | |
399 public boolean hasNext() { | |
42 | 400 |
401 for (; PriorityMappedByRoleIterator.hasNext();) { | |
402 if (search()) | |
403 return true; | |
404 } | |
405 | |
406 for (; personNodeIterator.hasNext();) { | |
407 TreeNode personNode = personNodeIterator.next(); | |
408 TreeNode prioritiesNode = personNode.getChildren().at(6).b(); | |
409 PriorityMappedByRoleIterator = prioritiesNode.getChildren().iterator(); | |
410 for (; PriorityMappedByRoleIterator.hasNext();) { | |
411 if (search()) | |
412 return true; | |
413 } | |
414 } | |
415 return false; | |
416 } | |
417 | |
418 private boolean search() { | |
419 TreeNode priorityMappedByRole = PriorityMappedByRoleIterator.next(); | |
420 TreeNode priorityNode = priorityMappedByRole.getChildren().at(0).b(); | |
421 int priority = Integer.parseInt(priorityNode.getAttributes().getString("text-priority")); | |
422 | |
423 if (priority > 0) { | |
424 TreeNode roleIdNode = priorityMappedByRole.getChildren().at(1).b(); | |
425 roleId = roleIdNode.getAttributes().getString("text-roleRefId"); | |
41 | 426 return true; |
42 | 427 } |
41 | 428 return false; |
42 | 429 |
41 | 430 } |
431 | |
432 @Override | |
433 public String next() { | |
42 | 434 return roleId; |
41 | 435 } |
436 }; | |
437 } | |
438 | |
33 | 439 public Iterator<String> deepPersonIds(String orgId, LinkedList<String> filterIds) { |
41 | 440 |
33 | 441 return new Iterator<String>() { |
42 | 442 Iterator<String> orgIdIterator = deepParentOrganizationIdsPlus(orgId, filterIds); |
443 private Iterator<String> personIterator = new NullIterator<String>(); | |
444 String personId = ""; | |
33 | 445 |
446 @Override | |
447 public boolean hasNext() { | |
42 | 448 for (; orgIdIterator.hasNext();) { |
449 if (personIterator.hasNext()) { | |
450 personId = personIterator.next(); | |
451 return true; | |
452 } | |
34 | 453 |
42 | 454 String targetOrgId = orgIdIterator.next(); |
455 personIterator = personIds(targetOrgId, new LinkedList<>()); | |
456 if (personIterator.hasNext()) { | |
457 personId = personIterator.next(); | |
34 | 458 return true; |
42 | 459 } |
34 | 460 } |
31 | 461 return false; |
462 } | |
463 | |
464 @Override | |
465 public String next() { | |
42 | 466 // TODO Auto-generated method stub |
467 return personId; | |
468 } | |
469 | |
470 }; | |
471 } | |
472 | |
473 public Iterator<String> deepChildOrganizationIdsPlus(String orgId, LinkedList<String> filterIds) { | |
474 | |
475 return new Iterator<String>() { | |
476 Iterator<String> childOrgIdIterator = deepChildOrganizationIds(orgId, filterIds); | |
477 String childOrgId = initOrgId(); | |
478 | |
479 @Override | |
480 public boolean hasNext() { | |
481 return childOrgId != null; | |
31 | 482 } |
42 | 483 |
484 private String initOrgId() { | |
485 if (filter(filterIds, orgId)) | |
486 return orgId; | |
487 if (childOrgIdIterator.hasNext()) | |
488 return childOrgIdIterator.next(); | |
489 return null; | |
490 } | |
491 | |
492 @Override | |
493 public String next() { | |
494 String str = childOrgId; | |
495 if (childOrgIdIterator.hasNext()) | |
496 childOrgId = childOrgIdIterator.next(); | |
497 else | |
498 childOrgId = null; | |
499 return str; | |
500 } | |
501 | |
31 | 502 }; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
503 } |
41 | 504 |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
505 public Iterator<String> deepChildOrganizationIds(String orgId, LinkedList<String> filterIds) { |
31 | 506 |
42 | 507 return new Iterator<String>() { |
508 | |
509 Iterator<TreeNode> childOrgnizationIdsIterator = childOrganizationIdsNode(orgId); | |
510 Stack<String> orgIdStack = new Stack<String>(); | |
511 | |
512 String childOrgId; | |
513 | |
514 @Override | |
515 public boolean hasNext() { | |
31 | 516 |
42 | 517 for (; childOrgnizationIdsIterator.hasNext();) { |
518 TreeNode parentOrgIdNode = childOrgnizationIdsIterator.next(); | |
519 childOrgId = parentOrgIdNode.getAttributes().getString("text-organizationRefId"); | |
520 orgIdStack.push(childOrgId); | |
521 if (orgNodefilter(filterIds, parentOrgIdNode)) | |
522 return true; | |
523 } | |
524 if (orgIdStack.isEmpty()) | |
525 return false; | |
34 | 526 |
42 | 527 childOrgnizationIdsIterator = childOrganizationIdsNode(orgIdStack.pop()); |
528 return this.hasNext(); | |
529 } | |
31 | 530 |
531 @Override | |
532 public String next() { | |
34 | 533 return childOrgId; |
31 | 534 } |
535 | |
536 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
537 } |
41 | 538 |
34 | 539 public TreeMap<String, String> _deepChildOrganizationIds(String orgId, TreeMap<String, String> orgIdsTreeMap) { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
540 |
34 | 541 TreeMap<String, String> childrenIdTreeMap = _childOrganizationIds(orgId, TreeMap.empty(Ord.stringOrd)); |
542 | |
543 if (childrenIdTreeMap.isEmpty()) | |
31 | 544 return orgIdsTreeMap; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
545 |
34 | 546 Iterator<P2<String, String>> childrenIdIterator = childrenIdTreeMap.iterator(); |
547 | |
548 for (; childrenIdIterator.hasNext();) { | |
549 String childrenId = childrenIdIterator.next()._1(); | |
550 orgIdsTreeMap = orgIdsTreeMap.set(childrenId, childrenId); | |
551 orgIdsTreeMap = _deepChildOrganizationIds(childrenId, orgIdsTreeMap); | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
552 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
553 |
31 | 554 return orgIdsTreeMap; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
555 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
556 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
557 public Iterator<String> childOrganizationIds(String orgId, LinkedList<String> filterIds) { |
34 | 558 |
31 | 559 return new Iterator<String>() { |
42 | 560 Iterator<TreeNode> orgNodeIterator = childOrganizationIdsNode(orgId); |
561 String organizationRefId; | |
31 | 562 |
563 @Override | |
564 public boolean hasNext() { | |
42 | 565 for (; orgNodeIterator.hasNext();) { |
566 TreeNode organizationRefIdNode = orgNodeIterator.next(); | |
567 organizationRefId = organizationRefIdNode.getAttributes().getString("text-organizationRefId"); | |
568 return true; | |
34 | 569 } |
31 | 570 return false; |
571 } | |
572 | |
573 @Override | |
574 public String next() { | |
42 | 575 return organizationRefId; |
576 } | |
577 | |
578 }; | |
579 } | |
580 | |
581 public Iterator<TreeNode> childOrganizationIdsNode(String orgId) { | |
582 | |
45 | 583 InterfaceTraverser orgTraverser = organizationTree.getTraverser(useIndex); |
42 | 584 |
585 return new Iterator<TreeNode>() { | |
586 TreeNode childOrgNode; | |
587 | |
588 Iterator<TreeNode> orgIdNodeIterator = orgTraverser.find((TreeNode node) -> { | |
589 String nodeElement = node.getAttributes().getString("element"); | |
590 if (nodeElement == null) | |
591 return false; | |
592 if (!nodeElement.equals("Organization")) | |
593 return false; | |
594 String nodeId = node.getAttributes().getString("Organization-id"); | |
595 if (nodeId == null) | |
596 return false; | |
597 if (nodeId.equals(orgId)) | |
598 return true; | |
599 return false; | |
600 }, "Organization-id", orgId); | |
601 | |
602 Iterator<TreeNode> childOrganizations = getParentOrgs(); | |
603 | |
604 @Override | |
605 public boolean hasNext() { | |
606 | |
607 if (childOrganizations == null) | |
608 return false; | |
609 if (childOrganizations.hasNext()) | |
610 childOrgNode = search(); | |
611 else | |
612 childOrgNode = null; | |
613 if (childOrgNode != null) | |
614 return true; | |
615 | |
616 childOrganizations = getParentOrgs(); | |
617 if (childOrganizations != null) | |
618 childOrgNode = search(); | |
619 | |
620 if (childOrgNode != null) | |
621 return true; | |
622 | |
623 return this.hasNext(); | |
624 } | |
625 | |
626 @Override | |
627 public TreeNode next() { | |
628 return childOrgNode; | |
629 } | |
630 | |
631 private TreeNode search() { | |
632 for (; childOrganizations.hasNext();) { | |
633 TreeNode OrganizationMappedByRole = childOrganizations.next(); | |
634 TreeNode organizationRefIdsNode = OrganizationMappedByRole.getChildren().at(0).b(); | |
635 TreeNode organizationRefIdNode = organizationRefIdsNode.getChildren().at(0).b(); | |
636 return organizationRefIdNode; | |
637 | |
638 } | |
639 childOrganizations = getParentOrgs(); | |
640 | |
641 return null; | |
642 } | |
643 | |
644 private Iterator<TreeNode> getParentOrgs() { | |
645 for (; orgIdNodeIterator.hasNext();) { | |
646 TreeNode targetPersonNode = orgIdNodeIterator.next(); | |
647 TreeNode parentOrganizations = targetPersonNode.getChildren().at(3).b(); | |
648 return parentOrganizations.getChildren().iterator(); | |
649 } | |
650 return null; | |
31 | 651 } |
652 }; | |
653 | |
654 } | |
655 | |
42 | 656 private boolean orgNodefilter(LinkedList<String> filterIds, TreeNode orgNode) { |
657 String orgId = orgNode.getAttributes().getString("text-organizationRefId"); | |
658 | |
659 return filter(filterIds, orgId); | |
660 } | |
661 | |
662 private boolean filter(LinkedList<String> filterIds, String id) { | |
663 | |
664 Pattern orgPattern = Pattern.compile("o:"); | |
665 Matcher orgMacher = orgPattern.matcher(id); | |
666 if (orgMacher.find()) { | |
667 id = getRole(id); | |
668 } | |
669 | |
670 for (String filterId : filterIds) { | |
671 Pattern rolePattern = Pattern.compile("r:"); | |
672 Matcher roleMacher = rolePattern.matcher(filterId); | |
673 if (roleMacher.find()) { | |
674 if (!filterId.equals(id)) { | |
675 return false; | |
676 } | |
677 } else { | |
678 Pattern rdePattern = Pattern.compile("rde:"); | |
679 Matcher rdeMacher = rdePattern.matcher(filterId); | |
680 if (rdeMacher.find()) { | |
681 if (!getRde(id, filterId)) | |
682 return false; | |
683 } | |
684 } | |
685 } | |
686 return true; | |
687 } | |
688 | |
689 private String getRole(String orgId) { | |
45 | 690 InterfaceTraverser orgTraverser = organizationTree.getTraverser(useIndex); |
42 | 691 Iterator<TreeNode> orgNodeIterator = orgTraverser.find((TreeNode node) -> { |
692 String nodeElement = node.getAttributes().getString("element"); | |
693 if (nodeElement == null) | |
694 return false; | |
695 if (!nodeElement.equals("Organization")) | |
696 return false; | |
697 String nodeId = node.getAttributes().getString("Organization"); | |
698 if (nodeId == null) | |
699 return false; | |
700 if (nodeId.equals(orgId)) | |
701 return true; | |
702 return false; | |
703 }, "Organization-id", orgId); | |
704 | |
705 if (!orgNodeIterator.hasNext()) | |
706 return ""; | |
707 | |
708 TreeNode orgNode = orgNodeIterator.next(); | |
709 TreeNode roleRefIds = orgNode.getChildren().at(2).b(); | |
710 TreeNode roleRefId = roleRefIds.getChildren().at(0).b(); | |
711 String roleId = roleRefId.getAttributes().getString("text-roleRefId"); | |
712 return roleId; | |
713 } | |
714 | |
715 private boolean getRde(String roleId, String filterId) { | |
716 | |
45 | 717 InterfaceTraverser roleTraverser = roleTree.getTraverser(useIndex); |
42 | 718 Iterator<TreeNode> rdeIdNodeIterator = roleTraverser.find((TreeNode node) -> { |
719 String nodeElement = node.getAttributes().getString("element"); | |
720 if (nodeElement == null) | |
721 return false; | |
722 if (!nodeElement.equals("Role")) | |
723 return false; | |
724 String nodeId = node.getAttributes().getString("Role-id"); | |
725 if (nodeId == null) | |
726 return false; | |
727 if (nodeId.equals(roleId)) | |
728 return true; | |
729 return false; | |
730 }, "Role-id", roleId); | |
731 | |
732 for (; rdeIdNodeIterator.hasNext();) { | |
733 TreeNode rdeIdNode = rdeIdNodeIterator.next(); | |
734 TreeNode roleDescriptionElementRefIds = rdeIdNode.getChildren().at(6).b(); | |
735 Iterator<TreeNode> roleDescriptionElementRefIdIterator = roleDescriptionElementRefIds.getChildren().iterator(); | |
736 for (; roleDescriptionElementRefIdIterator.hasNext();) { | |
737 String roleDescriptionElementRefId = roleDescriptionElementRefIdIterator.next().getAttributes() | |
738 .getString("text-roleDescriptionElementRefId"); | |
739 if (roleDescriptionElementRefId.equals(filterId)) | |
740 return true; | |
741 } | |
742 } | |
743 return false; | |
744 } | |
745 | |
34 | 746 public TreeMap<String, String> _childOrganizationIds(String orgId, TreeMap<String, String> childOrgIdsTreeMap) { |
28 | 747 |
45 | 748 InterfaceTraverser orgTraverser = organizationTree.getTraverser(useIndex); |
28 | 749 |
42 | 750 Iterator<TreeNode> orgIdNodeIterator = orgTraverser.find((TreeNode node) -> { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
751 String nodeElement = node.getAttributes().getString("element"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
752 if (nodeElement == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
753 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
754 if (!nodeElement.equals("Organization")) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
755 return false; |
28 | 756 String nodeId = node.getAttributes().getString("Organization-id"); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
757 if (nodeId == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
758 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
759 if (nodeId.equals(orgId)) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
760 return true; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
761 return false; |
28 | 762 }, "Organization-id", orgId); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
763 |
42 | 764 if (!orgIdNodeIterator.hasNext()) |
31 | 765 return childOrgIdsTreeMap; |
28 | 766 |
42 | 767 TreeNode orgIdNode = orgIdNodeIterator.next(); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
768 |
42 | 769 Iterator<TreeNode> chilrenOrgNodeIterator = orgTraverser.findInSubTree((TreeNode node) -> { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
770 String nodeElement = node.getAttributes().getString("element"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
771 if (nodeElement == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
772 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
773 if (nodeElement.equals("childOrganizations")) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
774 return true; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
775 return false; |
42 | 776 }, orgIdNode, "element", "childOrganizations"); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
777 |
42 | 778 if (!chilrenOrgNodeIterator.hasNext()) |
31 | 779 return childOrgIdsTreeMap; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
780 |
42 | 781 TreeNode chilerenOrg = chilrenOrgNodeIterator.next(); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
782 |
42 | 783 Iterator<TreeNode> chilrenOrgIdNodeIterator = orgTraverser.findInSubTreeAllValue((TreeNode node) -> { |
784 String nodeElement = node.getAttributes().getString("element"); | |
785 if (nodeElement == null) | |
786 return false; | |
787 if (!nodeElement.equals("organizationRefIds")) | |
788 return false; | |
789 nodeElement = node.getAttributes().getString("text-organizationRefIds"); | |
790 if (nodeElement != null) | |
791 return true; | |
792 return false; | |
793 }, chilerenOrg, "text-organizationRefIds"); | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
794 |
42 | 795 for (; chilrenOrgIdNodeIterator.hasNext();) { |
796 String childrenOrgId = chilrenOrgIdNodeIterator.next().getAttributes().getString("text-organizationRefIds"); | |
34 | 797 childOrgIdsTreeMap = childOrgIdsTreeMap.set(childrenOrgId, childrenOrgId); |
28 | 798 |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
799 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
800 |
31 | 801 return childOrgIdsTreeMap; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
802 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
803 |
42 | 804 class NullIterator<T> implements Iterator<T> { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
805 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
806 @Override |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
807 public boolean hasNext() { |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
808 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
809 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
810 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
811 @Override |
42 | 812 public T next() { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
813 return null; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
814 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
815 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
816 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
817 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
818 public String rolePriority(String personId, String roleId) { |
34 | 819 |
45 | 820 InterfaceTraverser personTraverser = personTree.getTraverser(useIndex); |
34 | 821 |
42 | 822 Iterator<TreeNode> roleIdNodeIterator = personTraverser.find((TreeNode node) -> { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
823 String element = node.getAttributes().getString("element"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
824 if (element == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
825 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
826 if (!element.equals("roleRefId")) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
827 return false; |
31 | 828 String compareRoleId = node.getAttributes().getString("text-roleRefId"); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
829 if (compareRoleId == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
830 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
831 if (compareRoleId.equals(roleId)) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
832 return true; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
833 return false; |
42 | 834 }, "text-roleRefId", roleId); |
11 | 835 |
42 | 836 for (; roleIdNodeIterator.hasNext();) { |
837 TreeNode roleIdNode = roleIdNodeIterator.next(); | |
838 ParentIndex parentIndex = personTraverser.getParentIndex(); | |
839 TreeNode roleIdParentNode = parentIndex.get(roleIdNode); | |
840 TreeNode parent = parentIndex.get(roleIdParentNode); | |
841 parent = parentIndex.get(parent); | |
842 String nodePersonId = parent.getAttributes().getString("Person-Id"); | |
843 if (nodePersonId != null && !nodePersonId.equals(personId)) | |
844 continue; | |
845 TreeNode priorityNode = roleIdParentNode.getChildren().at(0).b(); | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
846 if (priorityNode.getAttributes().getString("element").equals("priority")) |
31 | 847 return priorityNode.getAttributes().getString("text-priority"); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
848 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
849 return ""; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
850 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
851 |
42 | 852 public Iterator<String> parentOrganizationIds(String id, LinkedList<String> filterIds) { |
34 | 853 |
854 return new Iterator<String>() { | |
42 | 855 Iterator<TreeNode> orgNodeIterator = parentOrganizationIdsNode(id); |
856 String organizationRefId; | |
34 | 857 |
858 @Override | |
859 public boolean hasNext() { | |
42 | 860 for (; orgNodeIterator.hasNext();) { |
861 TreeNode organizationRefIdNode = orgNodeIterator.next(); | |
862 String orgId = organizationRefIdNode.getAttributes().getString("text-organizationRefId"); | |
863 if (!filter(filterIds, orgId)) | |
864 continue; | |
865 organizationRefId = orgId; | |
866 return true; | |
34 | 867 } |
868 return false; | |
869 } | |
870 | |
871 @Override | |
872 public String next() { | |
42 | 873 return organizationRefId; |
34 | 874 } |
875 | |
876 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
877 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
878 |
42 | 879 public Iterator<TreeNode> parentOrganizationIdsNode(String id) { |
880 | |
881 return new Iterator<TreeNode>() { | |
882 InterfaceTraverser traverser = getTraverser(id); | |
883 String element; | |
884 int pos; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
885 |
42 | 886 Iterator<TreeNode> idNodeIterator = traverser.find((TreeNode node) -> { |
887 String nodeElement = node.getAttributes().getString("element"); | |
888 if (nodeElement == null) | |
889 return false; | |
890 if (!nodeElement.equals(element)) | |
891 return false; | |
892 String nodeId = node.getAttributes().getString(element + "-id"); | |
893 if (nodeId == null) | |
894 return false; | |
895 if (nodeId.equals(id)) | |
41 | 896 return true; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
897 return false; |
42 | 898 }, element + "-id", id); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
899 |
42 | 900 TreeNode orgId; |
901 Iterator<TreeNode> parentOrganizationsIterator = getparentOrganizations(); | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
902 |
42 | 903 private Iterator<TreeNode> getparentOrganizations() { |
904 for (; idNodeIterator.hasNext();) { | |
905 TreeNode targetPersonNode = idNodeIterator.next(); | |
906 TreeNode parentOrganizations = targetPersonNode.getChildren().at(pos).b(); | |
907 return parentOrganizations.getChildren().iterator(); | |
41 | 908 } |
42 | 909 return null; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
910 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
911 |
42 | 912 @Override |
913 public boolean hasNext() { | |
914 if (parentOrganizationsIterator == null) | |
915 return false; | |
916 if (parentOrganizationsIterator.hasNext()) | |
917 orgId = search(); | |
918 else | |
919 orgId = null; | |
920 if (orgId != null) | |
921 return true; | |
922 | |
923 for (; parentOrganizationsIterator != null;) { | |
924 parentOrganizationsIterator = getparentOrganizations(); | |
925 if (parentOrganizationsIterator != null) | |
926 orgId = search(); | |
927 | |
928 if (orgId != null) | |
929 return true; | |
930 } | |
931 return false; | |
932 } | |
933 | |
934 @Override | |
935 public TreeNode next() { | |
936 return orgId; | |
937 } | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
938 |
42 | 939 private TreeNode search() { |
940 for (; parentOrganizationsIterator.hasNext();) { | |
941 TreeNode OrganizationMappedByRole = parentOrganizationsIterator.next(); | |
942 TreeNode organizationRefIdNode = OrganizationMappedByRole.getChildren().at(0).b(); | |
943 return organizationRefIdNode; | |
944 } | |
945 parentOrganizationsIterator = getparentOrganizations(); | |
946 | |
947 return null; | |
948 } | |
31 | 949 |
42 | 950 private InterfaceTraverser getTraverser(String id) { |
951 Pattern rolePattern = Pattern.compile("p:"); | |
952 Matcher roleMacher = rolePattern.matcher(id); | |
953 if (roleMacher.find()) { | |
954 element = "Person"; | |
955 pos = 5; | |
45 | 956 return personTree.getTraverser(useIndex); |
42 | 957 } |
958 | |
959 Pattern rdePattern = Pattern.compile("o:"); | |
960 Matcher rdeMacher = rdePattern.matcher(id); | |
961 if (rdeMacher.find()) { | |
962 element = "Organization"; | |
963 pos = 4; | |
45 | 964 return organizationTree.getTraverser(useIndex); |
42 | 965 } |
966 return null; | |
967 } | |
968 | |
969 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
970 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
971 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
972 public Iterator<String> deepParentOrganizationIds(String orgId, LinkedList<String> filterIds) { |
34 | 973 |
31 | 974 return new Iterator<String>() { |
42 | 975 Iterator<TreeNode> parentOrgnizationIdsIterator = parentOrganizationIdsNode(orgId); |
976 Stack<String> orgIdStack = new Stack<String>(); | |
977 | |
34 | 978 String parentOrgId; |
31 | 979 |
980 @Override | |
981 public boolean hasNext() { | |
42 | 982 |
983 for (; parentOrgnizationIdsIterator.hasNext();) { | |
984 TreeNode parentOrgIdNode = parentOrgnizationIdsIterator.next(); | |
985 parentOrgId = parentOrgIdNode.getAttributes().getString("text-organizationRefId"); | |
986 orgIdStack.push(parentOrgId); | |
987 if (orgNodefilter(filterIds, parentOrgIdNode)) | |
34 | 988 return true; |
989 } | |
42 | 990 if (orgIdStack.isEmpty()) |
991 return false; | |
992 | |
993 parentOrgnizationIdsIterator = parentOrganizationIdsNode(orgIdStack.pop()); | |
994 return this.hasNext(); | |
31 | 995 } |
996 | |
997 @Override | |
998 public String next() { | |
34 | 999 return parentOrgId; |
31 | 1000 } |
1001 | |
1002 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1003 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1004 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1005 public Iterator<String> deepParentOrganizationIdsPlus(String id, LinkedList<String> filterIds) { |
34 | 1006 |
31 | 1007 return new Iterator<String>() { |
44 | 1008 Iterator<String> parentOrgIdIterator = deepParentOrganizationIds(id, filterIds); |
42 | 1009 String parentOrgId = initOrgId(); |
31 | 1010 |
1011 @Override | |
1012 public boolean hasNext() { | |
42 | 1013 return parentOrgId != null; |
1014 } | |
1015 | |
1016 private String initOrgId() { | |
1017 if (filter(filterIds, id)) | |
1018 return id; | |
1019 | |
1020 if (parentOrgIdIterator.hasNext()) | |
1021 return parentOrgIdIterator.next(); | |
1022 return null; | |
31 | 1023 } |
1024 | |
1025 @Override | |
1026 public String next() { | |
42 | 1027 String str = parentOrgId; |
1028 parentOrgId = null; | |
1029 if (parentOrgIdIterator.hasNext()) | |
1030 parentOrgId = parentOrgIdIterator.next(); | |
1031 return str; | |
31 | 1032 } |
1033 | |
1034 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1035 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1036 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1037 public String stringPathToId(String args) { |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1038 String[] splitPath = args.split(":"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1039 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1040 String str = splitPath[2]; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1041 for (int count = 3; count < splitPath.length; count++) { |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1042 str = str + ":" + splitPath[count]; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1043 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1044 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1045 final String StrPath = str; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1046 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1047 InterfaceTraverser traverser = null; |
31 | 1048 String elementName = null; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1049 if (splitPath[0].equals("r")) { |
45 | 1050 traverser = roleTree.getTraverser(useIndex); |
31 | 1051 elementName = "Role"; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1052 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1053 if (splitPath[0].equals("rde")) { |
45 | 1054 traverser = rdeTree.getTraverser(useIndex); |
31 | 1055 elementName = "RoleDescriptionElement"; |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1056 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1057 |
42 | 1058 Iterator<TreeNode> PathNameIterator = traverser.find((TreeNode node) -> { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1059 String element = node.getAttributes().getString("element"); |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1060 if (element == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1061 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1062 if (!element.equals("path")) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1063 return false; |
31 | 1064 String pathString = node.getAttributes().getString("text-path"); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1065 if (pathString == null) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1066 return false; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1067 if (pathString.equals(StrPath)) |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1068 return true; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1069 return false; |
31 | 1070 }, "text-path", StrPath); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1071 |
34 | 1072 if (!PathNameIterator.hasNext()) |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1073 return ""; |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1074 |
42 | 1075 TreeNode pathNameNode = PathNameIterator.next(); |
1076 ParentIndex parentIndex = traverser.getParentIndex(); | |
1077 TreeNode pathNameIdNode = parentIndex.get(pathNameNode); | |
34 | 1078 String pathNameId = pathNameIdNode.getAttributes().getString(elementName + "-id"); |
1079 return pathNameId; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1080 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1081 |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1082 public Iterator<String> roleDescriptionElementIds(String id, LinkedList<String> filterIds) { |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1083 |
31 | 1084 return new Iterator<String>() { |
42 | 1085 Iterator<String> parentOrgIdIterator = deepParentOrganizationIdsPlus(id, filterIds); |
1086 Iterator<String> rdeIdIterator = new NullIterator<String>(); | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1087 |
31 | 1088 @Override |
1089 public boolean hasNext() { | |
42 | 1090 |
1091 if (rdeIdIterator.hasNext()) | |
31 | 1092 return true; |
42 | 1093 |
1094 if (parentOrgIdIterator.hasNext()) { | |
1095 String orgId = parentOrgIdIterator.next(); | |
1096 String roleId = getRole(orgId); | |
1097 rdeIdIterator = getRde(roleId); | |
1098 } else { | |
1099 return false; | |
1100 } | |
1101 | |
1102 return this.hasNext(); | |
31 | 1103 } |
1104 | |
1105 @Override | |
1106 public String next() { | |
42 | 1107 return rdeIdIterator.next(); |
31 | 1108 } |
1109 }; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1110 } |
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1111 |
31 | 1112 private Iterator<String> getRde(String roleId) { |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1113 |
45 | 1114 InterfaceTraverser traverser = roleTree.getTraverser(useIndex); |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1115 |
42 | 1116 return new Iterator<String>() { |
12 | 1117 |
42 | 1118 Iterator<TreeNode> roleIdNodeIterator = traverser.find((TreeNode node) -> { |
1119 String element = node.getAttributes().getString("element"); | |
1120 if (element == null) | |
1121 return false; | |
1122 if (!element.equals("Role")) | |
1123 return false; | |
1124 String id = node.getAttributes().getString("Role-id"); | |
1125 if (id == null) | |
1126 return false; | |
1127 if (id.equals(roleId)) | |
1128 return true; | |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1129 return false; |
42 | 1130 }, "Role-id", roleId); |
1131 String rdeId; | |
1132 Iterator<TreeNode> roleDescriptionElementRefIdIterator = new NullIterator<TreeNode>(); | |
10 | 1133 |
31 | 1134 @Override |
1135 public boolean hasNext() { | |
42 | 1136 for (; roleIdNodeIterator.hasNext();) { |
1137 | |
1138 if (roleDescriptionElementRefIdIterator.hasNext()) { | |
1139 rdeId = roleDescriptionElementRefIdIterator.next().getAttributes() | |
1140 .getString("text-roleDescriptionElementRefId"); | |
1141 return true; | |
1142 } | |
1143 | |
1144 TreeNode roleId = roleIdNodeIterator.next(); | |
1145 TreeNode roleDescriptionElementRefIds = roleId.getChildren().at(6).b(); | |
1146 roleDescriptionElementRefIdIterator = roleDescriptionElementRefIds.getChildren().iterator(); | |
1147 if (roleDescriptionElementRefIdIterator.hasNext()) { | |
1148 rdeId = roleDescriptionElementRefIdIterator.next().getAttributes() | |
1149 .getString("text-roleDescriptionElementRefId"); | |
1150 return true; | |
1151 } | |
1152 | |
41 | 1153 } |
31 | 1154 return false; |
1155 } | |
1156 | |
1157 @Override | |
1158 public String next() { | |
41 | 1159 return rdeId; |
31 | 1160 } |
1161 }; | |
34 | 1162 |
26
ef3fae2e7f0c
add ReadXmlNodeCreateIndexJandler and ReadXmlPutAttributeCreate
one
parents:
25
diff
changeset
|
1163 } |
38 | 1164 |
36 | 1165 } |