changeset 23:a9dc4ffd1f52

add stringPathToIdTest and Method
author one
date Mon, 27 Oct 2014 10:40:29 +0900
parents b6b5e3f48988
children 96b9017b0e44
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/stringPathToIdTest.java
diffstat 2 files changed, 67 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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<Pair<TreeNode,NodePath>> 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<TreeNode, NodePath> 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;
+	}
+
 
 
 
--- /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");
+ 	}
+}