# HG changeset patch # User one # Date 1415298131 -32400 # Node ID 626e56f749a92092d99c2ca5f26f95a1d45b8ad9 # Parent ed831b2fc156bd08e0bc406c4ad0f0416a309550 use index competentRoleIdTest and concurrentRoleIdsTest diff -r ed831b2fc156 -r 626e56f749a9 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 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 roleIds) { if (roleIds == null) return true; - + if (roleIds.isEmpty()) return true; @@ -232,7 +232,7 @@ } public boolean roleFilter(String id, Pair searchNodePair) { - //System.out.println(searchNodePair.getAttributes().getString("id")); + // System.out.println(searchNodePair.getAttributes().getString("id")); InterfaceTraverser orgTraverser = organizationTree.getTraverser(); Iterator> pairIdIterator = orgTraverser.findInSubTree((TreeNode node) -> { @@ -377,40 +377,54 @@ public Iterator concurrentRoleIds(String personId) { InterfaceTraverser ifTraverser = personTree.getTraverser(); - Iterator> pairPersonIterator = searchPerson(personId, ifTraverser); + Iterator> 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 person = pairPersonIterator.next(); - Iterator> targetPairIterator = ifTraverser.findInSubTree((TreeNode node) -> { + Iterator> 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 idList = new LinkedList(); for (; targetPairIterator.hasNext();) { - NodePath searchPath = targetPairIterator.next().right(); - Pair 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 targetPair = targetPairIterator.next(); + TreeNode targetNode = targetPair.left(); + int priority = Integer.parseInt(targetNode.getAttributes().getString("text-priority")); + if (priority > 0) { + NodePath targetPath = targetPair.right(); + Pair 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 deepPersonIds(String orgId, LinkedList filterIds) { Iterator childrensIterator = deepChildOrganizationIds(orgId, new LinkedList()); @@ -493,7 +507,7 @@ Pair chilerenOrgIds = chilrenOrgIdsIterator.next(); - Iterator> chilrenOrgIdIterator = orgTraverser.findInSubTree((TreeNode node) -> { + Iterator> 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 ids = new LinkedList(); diff -r ed831b2fc156 -r 626e56f749a9 src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/competentRoleIdTest.java --- 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 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"); } } diff -r ed831b2fc156 -r 626e56f749a9 src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/concurrentRoleIdsTest.java --- 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 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()); }