# HG changeset patch # User one # Date 1414352998 -32400 # Node ID f59fc20f4af92a0eb612b8ad8fbf5f00904e15b6 # Parent 4cfa77c61ee14b8c8a0db4e087214f4dc22c42e9 add deepChildOrganizationIdsTest and Method diff -r 4cfa77c61ee1 -r f59fc20f4af9 src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java --- a/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java Mon Oct 27 01:56:43 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java Mon Oct 27 04:49:58 2014 +0900 @@ -53,9 +53,7 @@ } public Iterator personIds(String orgId, LinkedList roleIds){ - - LinkedList names = personIdsSearch(orgId, roleIds); - return names.iterator(); + return personIdsSearch(orgId, roleIds).iterator(); } public Iterator personIds(LinkedList orgIds ,LinkedList roleIds){ @@ -121,16 +119,15 @@ String personId = node.getAttributes().getString("element"); if (personId == null) return false; - if (personId.equals("Organization")) - return true; + if (!personId.equals("Organization")) + return false; String compareOrgId = node.getAttributes().getString("id"); - if (orgId == null) + if (compareOrgId == null) return false; if (compareOrgId.equals(orgId)) return true; return false; - } - ,"element","orgId"); + }); if (!orgNodeIterator.hasNext()) return false; @@ -228,7 +225,7 @@ } public boolean roleFilter(String id, TreeNode orgNode) { - + System.out.println(orgNode.getAttributes().getString("id")); InterfaceTraverser orgTraverser = organizationTree.getTraverser(); Iterator> pairIdIterator = orgTraverser.find( @@ -236,7 +233,7 @@ String elementName = node.getAttributes().getString("element"); if (elementName == null) return false; - if (!elementName.equals("roleRefId")) + if (!elementName.equals("roleRefIds")) return false; String roleId = node.getAttributes().getString("text"); if (roleId == null) @@ -428,6 +425,27 @@ return pairPersonIterator; } + public Iterator deepChildOrganizationIds(String orgId, LinkedList filterIds) { + return _deepChildOrganizationIds(orgId,filterIds).iterator(); + } + + public LinkedList _deepChildOrganizationIds(String orgId, LinkedList filterIds) { + + Iterator childrensIterator = childOrganizationIds(orgId); + if (!childrensIterator.hasNext()) + return new LinkedList(); + + LinkedList childrenList = new LinkedList(); + for (;childrensIterator.hasNext();) { + String childrenId = childrensIterator.next(); + if(filter(childrenId,filterIds)) + childrenList.add(childrenId); + childrenList.addAll(_deepChildOrganizationIds(childrenId, filterIds)); + } + + return childrenList; + } + public Iterator childOrganizationIds(String orgId) { InterfaceTraverser ifTraverser = organizationTree.getTraverser(); @@ -583,4 +601,5 @@ + } diff -r 4cfa77c61ee1 -r f59fc20f4af9 src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/deepChildOrganizationIdsTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/deepChildOrganizationIdsTest.java Mon Oct 27 04:49:58 2014 +0900 @@ -0,0 +1,31 @@ +package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest; + +import java.util.Iterator; +import java.util.LinkedList; + +import org.junit.Test; + +import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix; +import junit.framework.Assert; + +public class deepChildOrganizationIdsTest { + + @Test + public void deepChildOrganizationIdsTest() { + JuGrix jugrix = new JuGrix(); + LinkedList filterIds = new LinkedList(); + filterIds.add("r:5"); + Iterator childrenIds = jugrix.deepChildOrganizationIds("o:2", filterIds); + + Assert.assertTrue(childrenIds.hasNext()); + String childrenId = childrenIds.next(); + Assert.assertEquals(childrenId, "o:4"); + + filterIds.add("rde:4"); + childrenIds = jugrix.deepChildOrganizationIds("o:2", filterIds); + + Assert.assertTrue(childrenIds.hasNext()); + childrenId = childrenIds.next(); + Assert.assertEquals(childrenId, "o:4"); + } +}