comparison src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java @ 20:ae739e8d86a2

ad parentOrganizationsTest and method
author one
date Mon, 27 Oct 2014 08:50:16 +0900
parents da872647cbe4
children daf0c3c810f9
comparison
equal deleted inserted replaced
19:da872647cbe4 20:ae739e8d86a2
624 return priorityNode.getAttributes().getString("text"); 624 return priorityNode.getAttributes().getString("text");
625 } 625 }
626 return ""; 626 return "";
627 } 627 }
628 628
629 public Iterator<String> parentOrganizationIds(String orgId, LinkedList<String> filterIds) {
630
631 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
632 Iterator<Pair<TreeNode,NodePath>> orgIterator = orgTraverser.find(
633 (TreeNode node) -> {
634 String element = node.getAttributes().getString("element");
635 if (element == null)
636 return false;
637 if (!element.equals("Organization"))
638 return false;
639 String nodeId = node.getAttributes().getString("id");
640 if (nodeId == null)
641 return false;
642 if (nodeId.equals(orgId))
643 return true;
644 return false;
645 });
646
647 if (!orgIterator.hasNext())
648 return new NullIterator();
649
650 TreeNode orgNode = orgIterator.next().left();
651
652 Iterator<Pair<TreeNode,NodePath>> parentOrgIterator = orgTraverser.find(
653 (TreeNode node) -> {
654 String element = node.getAttributes().getString("element");
655 if (element == null)
656 return false;
657 if (element.equals("parentOrganizations"))
658 return true;
659 return false;
660 }, orgNode);
661
662 LinkedList<String> parentIds = new LinkedList<String>();
663
664 for (;parentOrgIterator.hasNext();) {
665 TreeNode parentOrgNode = parentOrgIterator.next().left();
666
667 Iterator<Pair<TreeNode,NodePath>> parentNodeIterator = orgTraverser.find(
668 (TreeNode node) -> {
669 String element = node.getAttributes().getString("element");
670 if (element == null)
671 return false;
672 if (!element.equals("organizationRefId"))
673 return false;
674 String parentId = node.getAttributes().getString("text");
675 if (parentId != null)
676 return true;
677 return false;
678 }, parentOrgNode);
679
680 for (;parentNodeIterator.hasNext();) {
681 String parentId = parentNodeIterator.next().left().getAttributes().getString("text");
682 if (filter(parentId, filterIds))
683 parentIds.add(parentId);
684 }
685
686
687 }
688
689 return parentIds.iterator();
690 }
691
629 692
630 693
631 694
632 695
633 696