# HG changeset patch # User one # Date 1414365522 -32400 # Node ID da872647cbe40153582ef008e4f2b33e66cfd9ad # Parent 0fce1292ab38cb5f540831b380a99e2631a917f4 add deepChildOrganizationIdsPlusTest and Method diff -r 0fce1292ab38 -r da872647cbe4 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 06:49:08 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java Mon Oct 27 08:18:42 2014 +0900 @@ -438,7 +438,7 @@ return new NullIterator(); LinkedList childrenPersonList = new LinkedList(); - childrenPersonList.addAll(personIdLink(orgId, filterIds)); + //childrenPersonList.addAll(personIdLink(orgId, filterIds)); for (;childrensIterator.hasNext();) { String id = childrensIterator.next(); childrenPersonList.addAll(personIdLink(id, filterIds)); @@ -447,13 +447,21 @@ return childrenPersonList.iterator(); } + public Iterator deepChildOrganizationIdsPlus(String orgId, LinkedList filterIds) { + LinkedList orgList = new LinkedList(); + if (filter(orgId, filterIds)) + orgList.add(orgId); + orgList.addAll(_deepChildOrganizationIds(orgId,filterIds)); + return orgList.iterator(); + } + public Iterator deepChildOrganizationIds(String orgId, LinkedList filterIds) { return _deepChildOrganizationIds(orgId,filterIds).iterator(); } public LinkedList _deepChildOrganizationIds(String orgId, LinkedList filterIds) { - Iterator childrensIterator = childOrganizationIds(orgId); + Iterator childrensIterator = childOrganizationIds(orgId,new LinkedList()); if (!childrensIterator.hasNext()) return new LinkedList(); @@ -469,15 +477,32 @@ } - public Iterator childOrganizationIds(String orgId) { - InterfaceTraverser ifTraverser = organizationTree.getTraverser(); - Iterator> pairPersonIterator = searchOrganization(orgId, ifTraverser); + public Iterator childOrganizationIds(String orgId, LinkedList filterIds) { + if(!filter(orgId,filterIds)) + return new NullIterator(); + InterfaceTraverser orgTraverser = organizationTree.getTraverser(); + Iterator> pairPersonIterator = orgTraverser.find( + (TreeNode node) -> { + String nodeElement = node.getAttributes().getString("element"); + if (nodeElement == null) + return false; + if (!nodeElement.equals("Organization")) + return false; + String nodeId = node.getAttributes().getString("id"); + if (nodeId == null) + return false; + if (nodeId.equals(orgId)) + return true; + return false; + } + ,"element","Organization"); if (!pairPersonIterator.hasNext()) return new NullIterator(); TreeNode person = pairPersonIterator.next().left(); - Iterator> chilrenOrgIdsIterator = ifTraverser.find( + + Iterator> chilrenOrgIdsIterator = orgTraverser.find( (TreeNode node) -> { String nodeElement = node.getAttributes().getString("element"); if (nodeElement == null) @@ -493,7 +518,7 @@ TreeNode chilerenOrgIds = chilrenOrgIdsIterator.next().left(); - Iterator> chilrenOrgIdIterator = ifTraverser.find( + Iterator> chilrenOrgIdIterator = orgTraverser.find( (TreeNode node) -> { String nodeElement = node.getAttributes().getString("element"); if (nodeElement == null) @@ -517,25 +542,6 @@ } - private Iterator> searchOrganization(String orgId, - InterfaceTraverser ifTraverser) { - Iterator> pairPersonIterator = ifTraverser.find( - (TreeNode node) -> { - String nodeElement = node.getAttributes().getString("element"); - if (nodeElement == null) - return false; - if (!nodeElement.equals("Organization")) - return false; - String nodeId = node.getAttributes().getString("id"); - if (nodeId == null) - return false; - if (nodeId.equals(orgId)) - return true; - return false; - } - ,"element","Organization"); - return pairPersonIterator; - } public TreeNode getTarget(TreeNode node , NodePath path){ TreeNode target; diff -r 0fce1292ab38 -r da872647cbe4 src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/childOrganizationIds.java --- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/childOrganizationIds.java Mon Oct 27 06:49:08 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/childOrganizationIds.java Mon Oct 27 08:18:42 2014 +0900 @@ -12,7 +12,7 @@ @Test public void childOrganizationIdsTest(){ JuGrix jugrix = new JuGrix(); - Iterator ids = jugrix.childOrganizationIds("o:2"); + Iterator ids = jugrix.childOrganizationIds("o:2", null); Assert.assertTrue(ids.hasNext()); Assert.assertEquals(ids.next(),"o:3"); diff -r 0fce1292ab38 -r da872647cbe4 src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/deepChildOrganizationIdsPlusTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/deepChildOrganizationIdsPlusTest.java Mon Oct 27 08:18:42 2014 +0900 @@ -0,0 +1,28 @@ +package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest; + +import java.util.Iterator; +import java.util.LinkedList; + +import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix; + +import org.junit.Assert; +import org.junit.Test; + +public class deepChildOrganizationIdsPlusTest { + + @Test + public void deepChildOrganizationIdsPlusTest(){ + JuGrix jugrix = new JuGrix(); + LinkedList filterIds = new LinkedList(); + filterIds.add("r:9"); + Iterator childrenIds = jugrix.deepChildOrganizationIdsPlus("o:2", filterIds); + Assert.assertTrue(childrenIds.hasNext()); + Assert.assertEquals(childrenIds.next(),"o:2"); + + filterIds = new LinkedList(); + filterIds.add("r:5"); + childrenIds = jugrix.deepChildOrganizationIdsPlus("o:2", filterIds); + Assert.assertTrue(childrenIds.hasNext()); + Assert.assertEquals(childrenIds.next(),"o:4"); + } +}