Mercurial > hg > Members > tatsuki > JungleXMLReader
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 |