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");