Mercurial > hg > Members > tatsuki > JungleXMLReader
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()); }