Mercurial > hg > Members > tatsuki > JungleXMLReader
comparison src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java @ 25:6f9439ca3eb5
change name find to findInSubTree
author | one |
---|---|
date | Mon, 27 Oct 2014 18:06:23 +0900 |
parents | 96b9017b0e44 |
children | ef3fae2e7f0c |
comparison
equal
deleted
inserted
replaced
24:96b9017b0e44 | 25:6f9439ca3eb5 |
---|---|
92 LinkedList<String> names = new LinkedList<String>(); | 92 LinkedList<String> names = new LinkedList<String>(); |
93 | 93 |
94 for (;pairPersonIterator.hasNext();) { | 94 for (;pairPersonIterator.hasNext();) { |
95 | 95 |
96 Pair<TreeNode, NodePath> pairPerson = pairPersonIterator.next(); | 96 Pair<TreeNode, NodePath> pairPerson = pairPersonIterator.next(); |
97 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = personTraverser.find( | 97 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = personTraverser.findInSubTree( |
98 (TreeNode node) -> { | 98 (TreeNode node) -> { |
99 String personId = node.getAttributes().getString("text"); | 99 String personId = node.getAttributes().getString("text"); |
100 if (personId == null) | 100 if (personId == null) |
101 return false; | 101 return false; |
102 if (personId.equals(id)) | 102 if (personId.equals(id)) |
103 return true; | 103 return true; |
104 return false; | 104 return false; |
105 } | 105 } |
106 ,pairPerson.left()); | 106 ,pairPerson.left(),"text",id); |
107 | 107 |
108 if (pairIdIterator.hasNext()) { | 108 if (pairIdIterator.hasNext()) { |
109 String name = pairPerson.left().getAttributes().getString("id"); | 109 String name = pairPerson.left().getAttributes().getString("id"); |
110 names.add(name); | 110 names.add(name); |
111 } | 111 } |
131 if (compareOrgId == null) | 131 if (compareOrgId == null) |
132 return false; | 132 return false; |
133 if (compareOrgId.equals(orgId)) | 133 if (compareOrgId.equals(orgId)) |
134 return true; | 134 return true; |
135 return false; | 135 return false; |
136 }); | 136 },"id", orgId); |
137 | 137 |
138 if (!orgNodeIterator.hasNext()) | 138 if (!orgNodeIterator.hasNext()) |
139 return false; | 139 return false; |
140 | 140 |
141 TreeNode searchNode = orgNodeIterator.next().left(); | 141 TreeNode searchNode = orgNodeIterator.next().left(); |
159 } | 159 } |
160 | 160 |
161 private boolean rdeFilter(String id, TreeNode targetNode) { | 161 private boolean rdeFilter(String id, TreeNode targetNode) { |
162 | 162 |
163 InterfaceTraverser orgTraverser = organizationTree.getTraverser(); | 163 InterfaceTraverser orgTraverser = organizationTree.getTraverser(); |
164 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.find( | 164 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.findInSubTree( |
165 (TreeNode node) -> { | 165 (TreeNode node) -> { |
166 String element = node.getAttributes().getString("element"); | 166 String element = node.getAttributes().getString("element"); |
167 if (element == null) | 167 if (element == null) |
168 return false; | 168 return false; |
169 if (!element.equals("roleRefId")) | 169 if (!element.equals("roleRefId")) |
171 String roleId = node.getAttributes().getString("text"); | 171 String roleId = node.getAttributes().getString("text"); |
172 if (roleId != null) | 172 if (roleId != null) |
173 return true; | 173 return true; |
174 return false; | 174 return false; |
175 } | 175 } |
176 ,targetNode); | 176 ,targetNode,"element", "roleRefId"); |
177 | 177 |
178 TreeMap<String, String> idMap = TreeMap.empty(Ord.stringOrd); | 178 TreeMap<String, String> idMap = TreeMap.empty(Ord.stringOrd); |
179 for (; pairIdIterator.hasNext();) { | 179 for (; pairIdIterator.hasNext();) { |
180 String roleId = pairIdIterator.next().left().getAttributes().getString("text"); | 180 String roleId = pairIdIterator.next().left().getAttributes().getString("text"); |
181 idMap = idMap.set(roleId,roleId); | 181 idMap = idMap.set(roleId,roleId); |
199 if (compareRoleId.equals(roleId)) | 199 if (compareRoleId.equals(roleId)) |
200 return true; | 200 return true; |
201 return false; | 201 return false; |
202 } | 202 } |
203 ,"id",roleId); | 203 ,"id",roleId); |
204 | 204 // -----------------------------------------bug------------------------------------------ |
205 for (;roleNodeIterator.hasNext();) { | 205 for (;roleNodeIterator.hasNext();) { |
206 TreeNode roleNode = roleNodeIterator.next().left(); | 206 TreeNode roleNode = roleNodeIterator.next().left(); |
207 Iterator<Pair<TreeNode,NodePath>> rdeNodeIterator = roleTraverser.find( | 207 Iterator<Pair<TreeNode,NodePath>> rdeNodeIterator = roleTraverser.findInSubTree( |
208 (TreeNode node) -> { | 208 (TreeNode node) -> { |
209 String elementName = node.getAttributes().getString("element"); | 209 String elementName = node.getAttributes().getString("element"); |
210 if (elementName == null) | 210 if (elementName == null) |
211 return false; | 211 return false; |
212 if (!elementName.equals("roleDescriptionElementRefIds")) | 212 if (!elementName.equals("roleDescriptionElementRefIds")) |
218 Matcher personMacher = personPattern.matcher(rdeId); | 218 Matcher personMacher = personPattern.matcher(rdeId); |
219 if (personMacher.find()) | 219 if (personMacher.find()) |
220 return true; | 220 return true; |
221 return false; | 221 return false; |
222 } | 222 } |
223 ,roleNode); | 223 ,roleNode,"text","id"); |
224 | 224 |
225 if (!rdeNodeIterator.hasNext()) | 225 if (!rdeNodeIterator.hasNext()) |
226 return false; | 226 return false; |
227 } | 227 } |
228 | 228 |
232 | 232 |
233 public boolean roleFilter(String id, TreeNode orgNode) { | 233 public boolean roleFilter(String id, TreeNode orgNode) { |
234 System.out.println(orgNode.getAttributes().getString("id")); | 234 System.out.println(orgNode.getAttributes().getString("id")); |
235 InterfaceTraverser orgTraverser = organizationTree.getTraverser(); | 235 InterfaceTraverser orgTraverser = organizationTree.getTraverser(); |
236 | 236 |
237 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.find( | 237 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.findInSubTree( |
238 (TreeNode node) -> { | 238 (TreeNode node) -> { |
239 String elementName = node.getAttributes().getString("element"); | 239 String elementName = node.getAttributes().getString("element"); |
240 if (elementName == null) | 240 if (elementName == null) |
241 return false; | 241 return false; |
242 if (!elementName.equals("roleRefIds")) | 242 if (!elementName.equals("roleRefIds")) |
246 return false; | 246 return false; |
247 if (roleId.equals(id)) | 247 if (roleId.equals(id)) |
248 return true; | 248 return true; |
249 return false; | 249 return false; |
250 } | 250 } |
251 ,orgNode); | 251 ,orgNode,"text", id); |
252 | 252 |
253 if (pairIdIterator.hasNext()){ | 253 if (pairIdIterator.hasNext()){ |
254 System.out.println(pairIdIterator.next().left().getAttributes().getString("text")); | 254 System.out.println(pairIdIterator.next().left().getAttributes().getString("text")); |
255 return true; | 255 return true; |
256 } | 256 } |
295 LinkedList<String> ids = new LinkedList<String>(); | 295 LinkedList<String> ids = new LinkedList<String>(); |
296 | 296 |
297 for (;searchTargetIterator.hasNext();) { | 297 for (;searchTargetIterator.hasNext();) { |
298 | 298 |
299 Pair<TreeNode, NodePath> searchTargetPair = searchTargetIterator.next(); | 299 Pair<TreeNode, NodePath> searchTargetPair = searchTargetIterator.next(); |
300 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = ifTraverser.find( | 300 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = ifTraverser.findInSubTree( |
301 (TreeNode node) -> { | 301 (TreeNode node) -> { |
302 String nodeElement = node.getAttributes().getString("element"); | 302 String nodeElement = node.getAttributes().getString("element"); |
303 if (nodeElement == null) | 303 if (nodeElement == null) |
304 return false; | 304 return false; |
305 if (!nodeElement.equals("roleRefId")) | 305 if (!nodeElement.equals("roleRefId")) |
307 String nodeId = node.getAttributes().getString("text"); | 307 String nodeId = node.getAttributes().getString("text"); |
308 if (nodeId != null) | 308 if (nodeId != null) |
309 return true; | 309 return true; |
310 return false; | 310 return false; |
311 } | 311 } |
312 ,searchTargetPair.left()); | 312 ,searchTargetPair.left(),"element","roleRefId"); |
313 | 313 |
314 | 314 |
315 for (;pairIdIterator.hasNext();){ | 315 for (;pairIdIterator.hasNext();){ |
316 Pair<TreeNode, NodePath> idNodePath = pairIdIterator.next(); | 316 Pair<TreeNode, NodePath> idNodePath = pairIdIterator.next(); |
317 String attribute = idNodePath.left().getAttributes().getString("text"); | 317 String attribute = idNodePath.left().getAttributes().getString("text"); |
339 | 339 |
340 if (!pairPersonIterator.hasNext()) | 340 if (!pairPersonIterator.hasNext()) |
341 return new NullIterator(); | 341 return new NullIterator(); |
342 TreeNode person = pairPersonIterator.next().left(); | 342 TreeNode person = pairPersonIterator.next().left(); |
343 | 343 |
344 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.find( | 344 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.findInSubTree( |
345 (TreeNode node) -> { | 345 (TreeNode node) -> { |
346 String nodeElement = node.getAttributes().getString("element"); | 346 String nodeElement = node.getAttributes().getString("element"); |
347 if (nodeElement == null) | 347 if (nodeElement == null) |
348 return false; | 348 return false; |
349 if (!nodeElement.equals("priority")) | 349 if (!nodeElement.equals("priority")) |
353 return false; | 353 return false; |
354 if (priority.equals("0")) | 354 if (priority.equals("0")) |
355 return true; | 355 return true; |
356 return false; | 356 return false; |
357 } | 357 } |
358 ,person); | 358 ,person,"text","0"); |
359 | 359 |
360 | 360 |
361 LinkedList<String> idList = new LinkedList<String>(); | 361 LinkedList<String> idList = new LinkedList<String>(); |
362 for (;targetPairIterator.hasNext();) { | 362 for (;targetPairIterator.hasNext();) { |
363 NodePath searchPath = targetPairIterator.next().right(); | 363 NodePath searchPath = targetPairIterator.next().right(); |
380 | 380 |
381 if (!pairPersonIterator.hasNext()) | 381 if (!pairPersonIterator.hasNext()) |
382 return new NullIterator(); | 382 return new NullIterator(); |
383 TreeNode person = pairPersonIterator.next().left(); | 383 TreeNode person = pairPersonIterator.next().left(); |
384 | 384 |
385 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.find( | 385 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.findInSubTree( |
386 (TreeNode node) -> { | 386 (TreeNode node) -> { |
387 String nodeElement = node.getAttributes().getString("element"); | 387 String nodeElement = node.getAttributes().getString("element"); |
388 if (nodeElement == null) | 388 if (nodeElement == null) |
389 return false; | 389 return false; |
390 if (!nodeElement.equals("priority")) | 390 if (!nodeElement.equals("priority")) |
394 return false; | 394 return false; |
395 if (!priority.equals("0")) | 395 if (!priority.equals("0")) |
396 return true; | 396 return true; |
397 return false; | 397 return false; |
398 } | 398 } |
399 ,person); | 399 ,person,"text","0"); |
400 | 400 |
401 | 401 |
402 LinkedList<String> idList = new LinkedList<String>(); | 402 LinkedList<String> idList = new LinkedList<String>(); |
403 for (;targetPairIterator.hasNext();) { | 403 for (;targetPairIterator.hasNext();) { |
404 NodePath searchPath = targetPairIterator.next().right(); | 404 NodePath searchPath = targetPairIterator.next().right(); |
494 if (nodeId == null) | 494 if (nodeId == null) |
495 return false; | 495 return false; |
496 if (nodeId.equals(orgId)) | 496 if (nodeId.equals(orgId)) |
497 return true; | 497 return true; |
498 return false; | 498 return false; |
499 } | 499 },"id", orgId); |
500 ,"element","Organization"); | |
501 | 500 |
502 if (!pairPersonIterator.hasNext()) | 501 if (!pairPersonIterator.hasNext()) |
503 return new NullIterator(); | 502 return new NullIterator(); |
504 TreeNode person = pairPersonIterator.next().left(); | 503 TreeNode person = pairPersonIterator.next().left(); |
505 | 504 |
506 | 505 |
507 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdsIterator = orgTraverser.find( | 506 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdsIterator = orgTraverser.findInSubTree( |
508 (TreeNode node) -> { | 507 (TreeNode node) -> { |
509 String nodeElement = node.getAttributes().getString("element"); | 508 String nodeElement = node.getAttributes().getString("element"); |
510 if (nodeElement == null) | 509 if (nodeElement == null) |
511 return false; | 510 return false; |
512 if (nodeElement.equals("childOrganizations")) | 511 if (nodeElement.equals("childOrganizations")) |
513 return true; | 512 return true; |
514 return false; | 513 return false; |
515 } | 514 } |
516 ,person); | 515 ,person,"element","childOrganizations"); |
517 | 516 |
518 if (!chilrenOrgIdsIterator.hasNext()) | 517 if (!chilrenOrgIdsIterator.hasNext()) |
519 return new NullIterator(); | 518 return new NullIterator(); |
520 | 519 |
521 TreeNode chilerenOrgIds = chilrenOrgIdsIterator.next().left(); | 520 TreeNode chilerenOrgIds = chilrenOrgIdsIterator.next().left(); |
522 | 521 |
523 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdIterator = orgTraverser.find( | 522 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdIterator = orgTraverser.findInSubTree( |
524 (TreeNode node) -> { | 523 (TreeNode node) -> { |
525 String nodeElement = node.getAttributes().getString("element"); | 524 String nodeElement = node.getAttributes().getString("element"); |
526 if (nodeElement == null) | 525 if (nodeElement == null) |
527 return false; | 526 return false; |
528 if (!nodeElement.equals("organizationRefIds")) | 527 if (!nodeElement.equals("organizationRefIds")) |
530 nodeElement = node.getAttributes().getString("text"); | 529 nodeElement = node.getAttributes().getString("text"); |
531 if (nodeElement != null) | 530 if (nodeElement != null) |
532 return true; | 531 return true; |
533 return false; | 532 return false; |
534 } | 533 } |
535 ,chilerenOrgIds); | 534 ,chilerenOrgIds, "element", "organizationRefIds"); |
536 | 535 |
537 LinkedList<String> ids = new LinkedList<String>(); | 536 LinkedList<String> ids = new LinkedList<String>(); |
538 | 537 |
539 for (;chilrenOrgIdIterator.hasNext();) { | 538 for (;chilrenOrgIdIterator.hasNext();) { |
540 ids.add(chilrenOrgIdIterator.next().left().getAttributes().getString("text")); | 539 ids.add(chilrenOrgIdIterator.next().left().getAttributes().getString("text")); |
592 if (nodeId == null) | 591 if (nodeId == null) |
593 return false; | 592 return false; |
594 if (nodeId.equals(personId)) | 593 if (nodeId.equals(personId)) |
595 return true; | 594 return true; |
596 return false; | 595 return false; |
597 }); | 596 },"id",personId); |
598 | 597 |
599 if (!personIterator.hasNext()) | 598 if (!personIterator.hasNext()) |
600 return ""; | 599 return ""; |
601 | 600 |
602 TreeNode targetNode = personIterator.next().left(); | 601 TreeNode targetNode = personIterator.next().left(); |
603 | 602 |
604 Iterator<Pair<TreeNode,NodePath>> priorityIterator = personTraverser.find( | 603 Iterator<Pair<TreeNode,NodePath>> priorityIterator = personTraverser.findInSubTree( |
605 (TreeNode node) -> { | 604 (TreeNode node) -> { |
606 String element = node.getAttributes().getString("element"); | 605 String element = node.getAttributes().getString("element"); |
607 if (element == null) | 606 if (element == null) |
608 return false; | 607 return false; |
609 if (!element.equals("roleRefId")) | 608 if (!element.equals("roleRefId")) |
612 if (compareRoleId == null) | 611 if (compareRoleId == null) |
613 return false; | 612 return false; |
614 if (compareRoleId.equals(roleId)) | 613 if (compareRoleId.equals(roleId)) |
615 return true; | 614 return true; |
616 return false; | 615 return false; |
617 },targetNode); | 616 },targetNode,"element","roleRefId"); |
618 | 617 |
619 for (;priorityIterator.hasNext();) { | 618 for (;priorityIterator.hasNext();) { |
620 Pair<TreeNode, NodePath> priorityPair = priorityIterator.next(); | 619 Pair<TreeNode, NodePath> priorityPair = priorityIterator.next(); |
621 NodePath roleNodePath = priorityPair.right(); | 620 NodePath roleNodePath = priorityPair.right(); |
622 Pair<Integer, NodePath> last = roleNodePath.last(); | 621 Pair<Integer, NodePath> last = roleNodePath.last(); |
645 if (nodeId == null) | 644 if (nodeId == null) |
646 return false; | 645 return false; |
647 if (nodeId.equals(orgId)) | 646 if (nodeId.equals(orgId)) |
648 return true; | 647 return true; |
649 return false; | 648 return false; |
650 }); | 649 },"element","Organization"); |
651 | 650 |
652 if (!orgIterator.hasNext()) | 651 if (!orgIterator.hasNext()) |
653 return new LinkedList<String>(); | 652 return new LinkedList<String>(); |
654 | 653 |
655 TreeNode orgNode = orgIterator.next().left(); | 654 TreeNode orgNode = orgIterator.next().left(); |
656 | 655 |
657 Iterator<Pair<TreeNode,NodePath>> parentOrgIterator = orgTraverser.find( | 656 Iterator<Pair<TreeNode,NodePath>> parentOrgIterator = orgTraverser.findInSubTree( |
658 (TreeNode node) -> { | 657 (TreeNode node) -> { |
659 String element = node.getAttributes().getString("element"); | 658 String element = node.getAttributes().getString("element"); |
660 if (element == null) | 659 if (element == null) |
661 return false; | 660 return false; |
662 if (element.equals("parentOrganizations")) | 661 if (element.equals("parentOrganizations")) |
663 return true; | 662 return true; |
664 return false; | 663 return false; |
665 }, orgNode); | 664 }, orgNode,"element", "parentOrganizations"); |
666 | 665 |
667 LinkedList<String> parentIds = new LinkedList<String>(); | 666 LinkedList<String> parentIds = new LinkedList<String>(); |
668 | 667 |
669 for (;parentOrgIterator.hasNext();) { | 668 for (;parentOrgIterator.hasNext();) { |
670 TreeNode parentOrgNode = parentOrgIterator.next().left(); | 669 TreeNode parentOrgNode = parentOrgIterator.next().left(); |
671 | 670 |
672 Iterator<Pair<TreeNode,NodePath>> parentNodeIterator = orgTraverser.find( | 671 Iterator<Pair<TreeNode,NodePath>> parentNodeIterator = orgTraverser.findInSubTree( |
673 (TreeNode node) -> { | 672 (TreeNode node) -> { |
674 String element = node.getAttributes().getString("element"); | 673 String element = node.getAttributes().getString("element"); |
675 if (element == null) | 674 if (element == null) |
676 return false; | 675 return false; |
677 if (!element.equals("organizationRefId")) | 676 if (!element.equals("organizationRefId")) |
678 return false; | 677 return false; |
679 String parentId = node.getAttributes().getString("text"); | 678 String parentId = node.getAttributes().getString("text"); |
680 if (parentId != null) | 679 if (parentId != null) |
681 return true; | 680 return true; |
682 return false; | 681 return false; |
683 }, parentOrgNode); | 682 }, parentOrgNode,"element","organizationRefId"); |
684 | 683 |
685 for (;parentNodeIterator.hasNext();) { | 684 for (;parentNodeIterator.hasNext();) { |
686 String parentId = parentNodeIterator.next().left().getAttributes().getString("text"); | 685 String parentId = parentNodeIterator.next().left().getAttributes().getString("text"); |
687 if (filter(parentId, filterIds)) | 686 if (filter(parentId, filterIds)) |
688 parentIds.add(parentId); | 687 parentIds.add(parentId); |
756 if (pathString == null) | 755 if (pathString == null) |
757 return false; | 756 return false; |
758 if (pathString.equals(StrPath)) | 757 if (pathString.equals(StrPath)) |
759 return true; | 758 return true; |
760 return false; | 759 return false; |
761 }); | 760 }, "text","StrPath"); |
762 | 761 |
763 if (!idIterator.hasNext()) | 762 if (!idIterator.hasNext()) |
764 return ""; | 763 return ""; |
765 | 764 |
766 Pair<TreeNode, NodePath> nodePair = idIterator.next(); | 765 Pair<TreeNode, NodePath> nodePair = idIterator.next(); |
810 if (id == null) | 809 if (id == null) |
811 return false; | 810 return false; |
812 if (id.equals(roleId)) | 811 if (id.equals(roleId)) |
813 return true; | 812 return true; |
814 return false; | 813 return false; |
815 }); | 814 },"id",roleId); |
816 | 815 |
817 if (!roleIterator.hasNext()) | 816 if (!roleIterator.hasNext()) |
818 return ""; | 817 return ""; |
819 | 818 |
820 TreeNode roleNode = roleIterator.next().left(); | 819 TreeNode roleNode = roleIterator.next().left(); |
821 | 820 |
822 Iterator<Pair<TreeNode,NodePath>> rdeIterator = traverser.find( | 821 Iterator<Pair<TreeNode,NodePath>> rdeIterator = traverser.findInSubTree( |
823 (TreeNode node) -> { | 822 (TreeNode node) -> { |
824 String element = node.getAttributes().getString("element"); | 823 String element = node.getAttributes().getString("element"); |
825 if (element == null) | 824 if (element == null) |
826 return false; | 825 return false; |
827 if (!element.equals("roleDescriptionElementRefIds")) | 826 if (!element.equals("roleDescriptionElementRefIds")) |
828 return false; | 827 return false; |
829 String rde = node.getAttributes().getString("text"); | 828 String rde = node.getAttributes().getString("text"); |
830 if (rde != null) | 829 if (rde != null) |
831 return true; | 830 return true; |
832 return false; | 831 return false; |
833 },roleNode); | 832 },roleNode,"element","roleDescriptionElementRefIds"); |
834 | 833 |
835 if (!rdeIterator.hasNext()) | 834 if (!rdeIterator.hasNext()) |
836 return ""; | 835 return ""; |
837 | 836 |
838 return rdeIterator.next().left().getAttributes().getString("text"); | 837 return rdeIterator.next().left().getAttributes().getString("text"); |