# HG changeset patch # User one # Date 1414341178 -32400 # Node ID 5ef4b1004adec876980acbacdb9d47e2680ca0d4 # Parent 54ac3718ab243dad28156817a1612f4d53ef15f8 rolePriorityTest diff -r 54ac3718ab24 -r 5ef4b1004ade 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 00:16:44 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java Mon Oct 27 01:32:58 2014 +0900 @@ -5,6 +5,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import fj.Ord; +import fj.P2; +import fj.data.TreeMap; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; @@ -96,7 +99,7 @@ return true; return false; } - ,pairPerson.left(),"text",id); + ,pairPerson.left()); if (pairIdIterator.hasNext()) { String name = pairPerson.left().getAttributes().getString("id"); @@ -118,8 +121,8 @@ String personId = node.getAttributes().getString("element"); if (personId == null) return false; - if (!personId.equals("Organization")) - return false; + if (personId.equals("Organization")) + return true; String compareOrgId = node.getAttributes().getString("id"); if (orgId == null) return false; @@ -167,7 +170,7 @@ return true; return false; } - ,targetNode,"element","roleRefId"); + ,targetNode); TreeMap idMap = TreeMap.empty(Ord.stringOrd); for (; pairIdIterator.hasNext();) { @@ -214,7 +217,7 @@ return true; return false; } - ,roleNode,"text",id); + ,roleNode); if (!rdeNodeIterator.hasNext()) return false; @@ -242,7 +245,7 @@ return true; return false; } - ,orgNode,"text",id); + ,orgNode); if (pairIdIterator.hasNext()){ System.out.println(pairIdIterator.next().left().getAttributes().getString("text")); @@ -528,5 +531,54 @@ } + public String rolePriority(String personId, String roleId) { + InterfaceTraverser personTraverser = personTree.getTraverser(); + Iterator> personIterator = personTraverser.find( + (TreeNode node) -> { + String element = node.getAttributes().getString("element"); + if (element == null) + return false; + if (!element.equals("Person")) + return false; + String nodeId = node.getAttributes().getString("id"); + if (nodeId == null) + return false; + if (nodeId.equals(personId)) + return true; + return false; + }); + + if (!personIterator.hasNext()) + return ""; + + TreeNode targetNode = personIterator.next().left(); + + Iterator> priorityIterator = personTraverser.find( + (TreeNode node) -> { + String element = node.getAttributes().getString("element"); + if (element == null) + return false; + if (!element.equals("roleRefId")) + return false; + String compareRoleId = node.getAttributes().getString("text"); + if (compareRoleId == null) + return false; + if (compareRoleId.equals(roleId)) + return true; + return false; + },targetNode); + + for (;priorityIterator.hasNext();) { + Pair priorityPair = priorityIterator.next(); + NodePath roleNodePath = priorityPair.right(); + Pair last = roleNodePath.last(); + NodePath priorityNodePath = last.right().add(last.left() - 1); + TreeNode priorityNode = getTarget(targetNode,priorityNodePath); + if (priorityNode.getAttributes().getString("element").equals("priority")) + return priorityNode.getAttributes().getString("text"); + } + return ""; + } + } diff -r 54ac3718ab24 -r 5ef4b1004ade src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java --- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java Mon Oct 27 00:16:44 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java Mon Oct 27 01:32:58 2014 +0900 @@ -28,6 +28,9 @@ ids.hasNext(); Assert.assertEquals(ids.next(),"p:1"); - + + filterIds.add("rde:322"); + ids = jugrix.personIds("o:2",filterIds); + Assert.assertFalse(ids.hasNext()); } } diff -r 54ac3718ab24 -r 5ef4b1004ade src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/rolePriorityTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/rolePriorityTest.java Mon Oct 27 01:32:58 2014 +0900 @@ -0,0 +1,16 @@ +package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest; + +import org.junit.Test; + +import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix; +import junit.framework.Assert; + +public class rolePriorityTest { + + @Test + public void rolePriorityTest(){ + JuGrix jugrix = new JuGrix(); + String priority = jugrix.rolePriority("p:1", "r:34"); + Assert.assertEquals(priority,"1"); + } +}