changeset 17:f59fc20f4af9

add deepChildOrganizationIdsTest and Method
author one
date Mon, 27 Oct 2014 04:49:58 +0900
parents 4cfa77c61ee1
children 0fce1292ab38
files src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/deepChildOrganizationIdsTest.java
diffstat 2 files changed, 60 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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<String> personIds(String orgId, LinkedList<String> roleIds){
-		
-		LinkedList<String> names = personIdsSearch(orgId, roleIds);
-		return names.iterator();
+		return personIdsSearch(orgId, roleIds).iterator();
 	}
 	
 	public Iterator<String> personIds(LinkedList<String> orgIds ,LinkedList<String> 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<Pair<TreeNode,NodePath>> 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<String> deepChildOrganizationIds(String orgId, LinkedList<String> filterIds) {
+		return _deepChildOrganizationIds(orgId,filterIds).iterator();
+	}
+	
+	public LinkedList<String> _deepChildOrganizationIds(String orgId, LinkedList<String> filterIds) {
+				
+		Iterator<String> childrensIterator = childOrganizationIds(orgId);
+		if (!childrensIterator.hasNext())
+			return new LinkedList<String>();
+		
+		LinkedList<String> childrenList = new LinkedList<String>();
+		for (;childrensIterator.hasNext();) {
+			String childrenId = childrensIterator.next();
+			if(filter(childrenId,filterIds))
+				childrenList.add(childrenId);
+			childrenList.addAll(_deepChildOrganizationIds(childrenId, filterIds));
+		}
+	
+		return childrenList;
+	}
+
 
 	public Iterator<String> childOrganizationIds(String orgId) {
 		InterfaceTraverser ifTraverser = organizationTree.getTraverser();
@@ -583,4 +601,5 @@
 
 
 
+
 }
--- /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<String> filterIds = new LinkedList<String>();
+		filterIds.add("r:5");
+		Iterator<String> 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");
+	}
+}