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