changeset 29:626e56f749a9

use index competentRoleIdTest and concurrentRoleIdsTest
author one
date Fri, 07 Nov 2014 03:22:11 +0900
parents ed831b2fc156
children f45b1c839753
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/competentRoleIdTest.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/concurrentRoleIdsTest.java
diffstat 3 files changed, 44 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java	Fri Nov 07 02:20:07 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java	Fri Nov 07 03:22:11 2014 +0900
@@ -40,7 +40,7 @@
         roleTree = reader.loadTestData("Role.xml");
         rdeTree = reader.loadTestData("RoleDescriptionElement.xml");
       }
-      
+
     } catch (Exception e) {
       e.printStackTrace();
     }
@@ -122,7 +122,7 @@
   public boolean filter(String orgId, LinkedList<String> roleIds) {
     if (roleIds == null)
       return true;
-    
+
     if (roleIds.isEmpty())
       return true;
 
@@ -232,7 +232,7 @@
   }
 
   public boolean roleFilter(String id, Pair<TreeNode, NodePath> searchNodePair) {
-    //System.out.println(searchNodePair.getAttributes().getString("id"));
+    // System.out.println(searchNodePair.getAttributes().getString("id"));
     InterfaceTraverser orgTraverser = organizationTree.getTraverser();
 
     Iterator<Pair<TreeNode, NodePath>> pairIdIterator = orgTraverser.findInSubTree((TreeNode node) -> {
@@ -377,40 +377,54 @@
   public Iterator<String> concurrentRoleIds(String personId) {
 
     InterfaceTraverser ifTraverser = personTree.getTraverser();
-    Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = searchPerson(personId, ifTraverser);
+    Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = ifTraverser.find((TreeNode node) -> {
+      String nodeElement = node.getAttributes().getString("element");
+      if (nodeElement == null)
+        return false;
+      if (!nodeElement.equals("Person"))
+        return false;
+      String nodeId = node.getAttributes().getString("Person-id");
+      if (nodeId == null)
+        return false;
+      if (nodeId.equals(personId))
+        return true;
+      return false;
+    }, "Person-id", personId);
 
     if (!pairPersonIterator.hasNext())
       return new NullIterator();
     Pair<TreeNode, NodePath> person = pairPersonIterator.next();
 
-    Iterator<Pair<TreeNode, NodePath>> targetPairIterator = ifTraverser.findInSubTree((TreeNode node) -> {
+    Iterator<Pair<TreeNode, NodePath>> targetPairIterator = ifTraverser.findInSubTreeAllValue((TreeNode node) -> {
       String nodeElement = node.getAttributes().getString("element");
       if (nodeElement == null)
         return false;
       if (!nodeElement.equals("priority"))
         return false;
-      String priority = node.getAttributes().getString("text");
-      if (priority == null)
-        return false;
-      if (!priority.equals("0"))
+      String priority = node.getAttributes().getString("text-priority");
+      if (priority != null)
         return true;
       return false;
-    }, person, "text", "0");
+    }, person, "text-priority");
 
     LinkedList<String> idList = new LinkedList<String>();
     for (; targetPairIterator.hasNext();) {
-      NodePath searchPath = targetPairIterator.next().right();
-      Pair<Integer, NodePath> searchPair = searchPath.last();
-      NodePath targetPath = searchPair.right().add(searchPair.left() + 1);
-      TreeNode targetNode = getTarget(person.left(), targetPath);
-      String id = targetNode.getAttributes().getString("text");
-      idList.add(id);
+      Pair<TreeNode,NodePath> targetPair = targetPairIterator.next(); 
+      TreeNode targetNode = targetPair.left();
+      int priority = Integer.parseInt(targetNode.getAttributes().getString("text-priority"));
+      if (priority > 0) {
+        NodePath targetPath = targetPair.right();
+        Pair<Integer, NodePath> searchPair = targetPath.last();
+        NodePath roleIdNodePath = searchPair.right().add(searchPair.left() + 1);
+        TreeNode roleIdNode = getTarget(personTree.getRootNode(), roleIdNodePath);
+        String id = roleIdNode.getAttributes().getString("text-roleRefId");
+        idList.add(id);
+      }
     }
 
     return idList.iterator();
   }
 
-
   public Iterator<String> deepPersonIds(String orgId, LinkedList<String> filterIds) {
 
     Iterator<String> childrensIterator = deepChildOrganizationIds(orgId, new LinkedList<String>());
@@ -493,7 +507,7 @@
 
     Pair<TreeNode, NodePath> chilerenOrgIds = chilrenOrgIdsIterator.next();
 
-    Iterator<Pair<TreeNode, NodePath>> chilrenOrgIdIterator = orgTraverser.findInSubTree((TreeNode node) -> {
+    Iterator<Pair<TreeNode, NodePath>> chilrenOrgIdIterator = orgTraverser.findInSubTreeAllValue((TreeNode node) -> {
       String nodeElement = node.getAttributes().getString("element");
       if (nodeElement == null)
         return false;
@@ -503,7 +517,7 @@
       if (nodeElement != null)
         return true;
       return false;
-    }, chilerenOrgIds, "text-organizationRefIds", null);
+    }, chilerenOrgIds, "text-organizationRefIds");
 
     LinkedList<String> ids = new LinkedList<String>();
 
--- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/competentRoleIdTest.java	Fri Nov 07 02:20:07 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/competentRoleIdTest.java	Fri Nov 07 03:22:11 2014 +0900
@@ -15,5 +15,10 @@
 		Iterator<String> roleIds = jugrix.competentRoleId("p:1");
 		Assert.assertTrue(roleIds.hasNext());
 		Assert.assertEquals(roleIds.next(), "r:10");
+		
+    jugrix = new JuGrix(true);
+    roleIds = jugrix.competentRoleId("p:1");
+    Assert.assertTrue(roleIds.hasNext());
+    Assert.assertEquals(roleIds.next(), "r:10");
 	}
 }
--- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/concurrentRoleIdsTest.java	Fri Nov 07 02:20:07 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/concurrentRoleIdsTest.java	Fri Nov 07 03:22:11 2014 +0900
@@ -12,11 +12,16 @@
 	
 	@Test
 	public void concurrentRoleIdsTest() {
-		JuGrix jugrix = new JuGrix();
+		JuGrix jugrix = new JuGrix(false);
 		Iterator<String> roleIds = jugrix.concurrentRoleIds("p:1");
 		Assert.assertTrue(roleIds.hasNext());
 		Assert.assertEquals(roleIds.next(), "r:34");
 		
+    jugrix = new JuGrix(true);
+    roleIds = jugrix.concurrentRoleIds("p:1");
+    Assert.assertTrue(roleIds.hasNext());
+    Assert.assertEquals(roleIds.next(), "r:34");
+    
 		roleIds = jugrix.concurrentRoleIds("p:48");
 		Assert.assertFalse(roleIds.hasNext());
 	}