Mercurial > hg > Members > tatsuki > JungleXMLReader
comparison src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java @ 21:daf0c3c810f9
add deepParentOrganizationIdsTest and Method
author | one |
---|---|
date | Mon, 27 Oct 2014 09:16:22 +0900 |
parents | ae739e8d86a2 |
children | b6b5e3f48988 |
comparison
equal
deleted
inserted
replaced
20:ae739e8d86a2 | 21:daf0c3c810f9 |
---|---|
625 } | 625 } |
626 return ""; | 626 return ""; |
627 } | 627 } |
628 | 628 |
629 public Iterator<String> parentOrganizationIds(String orgId, LinkedList<String> filterIds) { | 629 public Iterator<String> parentOrganizationIds(String orgId, LinkedList<String> filterIds) { |
630 return _parentOrganizationIds(orgId, filterIds).iterator(); | |
631 } | |
632 public LinkedList<String> _parentOrganizationIds(String orgId, LinkedList<String> filterIds) { | |
630 | 633 |
631 InterfaceTraverser orgTraverser = organizationTree.getTraverser(); | 634 InterfaceTraverser orgTraverser = organizationTree.getTraverser(); |
632 Iterator<Pair<TreeNode,NodePath>> orgIterator = orgTraverser.find( | 635 Iterator<Pair<TreeNode,NodePath>> orgIterator = orgTraverser.find( |
633 (TreeNode node) -> { | 636 (TreeNode node) -> { |
634 String element = node.getAttributes().getString("element"); | 637 String element = node.getAttributes().getString("element"); |
643 return true; | 646 return true; |
644 return false; | 647 return false; |
645 }); | 648 }); |
646 | 649 |
647 if (!orgIterator.hasNext()) | 650 if (!orgIterator.hasNext()) |
648 return new NullIterator(); | 651 return new LinkedList<String>(); |
649 | 652 |
650 TreeNode orgNode = orgIterator.next().left(); | 653 TreeNode orgNode = orgIterator.next().left(); |
651 | 654 |
652 Iterator<Pair<TreeNode,NodePath>> parentOrgIterator = orgTraverser.find( | 655 Iterator<Pair<TreeNode,NodePath>> parentOrgIterator = orgTraverser.find( |
653 (TreeNode node) -> { | 656 (TreeNode node) -> { |
684 } | 687 } |
685 | 688 |
686 | 689 |
687 } | 690 } |
688 | 691 |
689 return parentIds.iterator(); | 692 return parentIds; |
693 } | |
694 | |
695 public Iterator<String> deepParentOrganizationIds(String orgId, LinkedList<String> filterIds) { | |
696 return _deepParentOrganizationIds(orgId, filterIds).iterator(); | |
697 } | |
698 public LinkedList<String> _deepParentOrganizationIds(String orgId, LinkedList<String> filterIds) { | |
699 | |
700 | |
701 Iterator<String> parentIds = parentOrganizationIds(orgId, filterIds); | |
702 if (!parentIds.hasNext()) | |
703 return new LinkedList<String>(); | |
704 | |
705 LinkedList<String> parentIdList = new LinkedList<String>(); | |
706 | |
707 for (;parentIds.hasNext();) { | |
708 String parentId = parentIds.next(); | |
709 if (filter(parentId, filterIds)) | |
710 parentIdList.add(parentId); | |
711 parentIdList.addAll(_deepParentOrganizationIds(parentId, filterIds)); | |
712 } | |
713 return parentIdList; | |
690 } | 714 } |
691 | 715 |
692 | 716 |
693 | 717 |
694 | 718 |