# HG changeset patch # User one # Date 1414374029 -32400 # Node ID a9dc4ffd1f528ac5b521a9a046f75f6fc1ef9840 # Parent b6b5e3f489885ca47da9926a7d014258676b4597 add stringPathToIdTest and Method diff -r b6b5e3f48988 -r a9dc4ffd1f52 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 09:41:14 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java Mon Oct 27 10:40:29 2014 +0900 @@ -21,12 +21,14 @@ JungleTree personTree; JungleTree organizationTree; JungleTree roleTree; + JungleTree rdeTree; public JuGrix(){ try{ loadXml reader = new loadXml(); personTree = reader.loadTestData("Person.xml"); organizationTree = reader.loadTestData("Organization.xml"); roleTree = reader.loadTestData("Role.xml"); + rdeTree = reader.loadTestData("RoleDescriptionElement.xml"); } catch (Exception e) { e.printStackTrace(); } @@ -722,6 +724,54 @@ return parentIds.iterator(); } + public String stringPathToId(String args) { + String[] splitPath = args.split(":"); + + String str = splitPath[2]; + for (int count = 3; count < splitPath.length;count++) { + str = str + ":" + splitPath[count]; + } + + final String StrPath = str; + + InterfaceTraverser traverser = null; + TreeNode root = null ; + if (splitPath[0].equals("r")) { + traverser = roleTree.getTraverser(); + root = roleTree.getRootNode(); + } + if (splitPath[0].equals("rde")) { + traverser = rdeTree.getTraverser(); + root = rdeTree.getRootNode(); + } + + Iterator> idIterator = traverser.find( + (TreeNode node) -> { + String element = node.getAttributes().getString("element"); + if (element == null) + return false; + if (!element.equals("path")) + return false; + String pathString = node.getAttributes().getString("text"); + if (pathString == null) + return false; + if (pathString.equals(StrPath)) + return true; + return false; + }); + + if (!idIterator.hasNext()) + return ""; + + Pair nodePair = idIterator.next(); + NodePath path = nodePair.right(); + NodePath targetPath = path.last().right(); + + TreeNode targetNode = getTarget(root, targetPath); + String targetId = targetNode.getAttributes().getString("id"); + return targetId; + } + diff -r b6b5e3f48988 -r a9dc4ffd1f52 src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/stringPathToIdTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/stringPathToIdTest.java Mon Oct 27 10:40:29 2014 +0900 @@ -0,0 +1,17 @@ +package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest; + +import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix; +import junit.framework.Assert; + +import org.junit.Test; + +public class stringPathToIdTest { + @Test + public void stringPathToIdTest(){ + JuGrix jugrix = new JuGrix(); + String id = jugrix.stringPathToId("r:path:エスアールエルテクノシステム/臨検システム部/業務システムグループ"); + Assert.assertEquals(id,"r:43"); + id = jugrix.stringPathToId("rde:path:システム開発申請書/組織的役割/起票部署"); + Assert.assertEquals(id, "rde:10"); + } +}