changeset 28:ed831b2fc156

temporarily stored
author one
date Fri, 07 Nov 2014 02:20:07 +0900
parents 095813055f19
children 626e56f749a9
files src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlHandler.java src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlNodeCreateIndexHandler.java src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlPutAttributeCreateIndex.java src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/loadXml.java src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/loadXml.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/childOrganizationIds.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/isActiveTest.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/xmlReadTest/ReadXmlTest.java
diffstat 11 files changed, 204 insertions(+), 206 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlHandler.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlHandler.java	Fri Nov 07 02:20:07 2014 +0900
@@ -15,13 +15,13 @@
 import org.xml.sax.*;
 import org.xml.sax.helpers.*;
 
-import fj.test.reflect.Name;
 
 public class ReadXmlHandler extends DefaultHandler {
 	private JungleTree tree;
 	private JungleTreeEditor editor;
 	private NodePath path;
-	
+  private String elementName;
+  
 	public ReadXmlHandler(JungleTree tree){
 		this.tree = tree;
 		this.editor = tree.getTreeEditor();
@@ -52,25 +52,29 @@
 		//	System.out.println("localName= " + localName);
 		}
 
-		if (qName != "") {
-		//	System.out.println("qName= " + qName);
-			Either<Error, JungleTreeEditor> newEither = editor.putAttribute(path, "element", ByteBuffer.wrap(qName.getBytes()));
-			if (newEither.isA()) {
-				//error				
-			}
-			this.editor = newEither.b();
-		}
+    if (qName != "") {
+    //  System.out.println("qName= " + qName);
+      elementName = qName;
+      Either<Error, JungleTreeEditor> newEither = editor.putAttribute(path, "element", ByteBuffer.wrap(qName.getBytes()));
+      if (newEither.isA()) {
+        //error       
+      }
+      this.editor = newEither.b();
+    }
 
-		if (attributes.getLength() != 0) {
-			for (int count = 0 ;attributes.getLength() > count; count++) {
-		//		System.out.println(attributes.getLocalName(count) + " = " + attributes.getValue(count));
-				Either<Error, JungleTreeEditor> newEither = editor.putAttribute(path,attributes.getLocalName(count) , ByteBuffer.wrap(attributes.getValue(count).getBytes()));
-				if (newEither.isA()) {
-					//error
-				}
-				this.editor = newEither.b();
-			}
-		}
+    if (attributes.getLength() != 0) {
+      for (int count = 0 ;attributes.getLength() > count; count++) {
+    //    System.out.println(attributes.getLocalName(count) + " = " + attributes.getValue(count));
+        String key = elementName + "-" + attributes.getLocalName(count);
+        String value = attributes.getValue(count);
+        ByteBuffer bValue = ByteBuffer.wrap(value.getBytes());
+        Either<Error, JungleTreeEditor> newEither = editor.putAttribute(path,key , bValue);
+        if (newEither.isA()) {
+          //error
+        }
+        this.editor = newEither.b();
+      }
+    }
 		path = path.add(-1);
 	}
 
@@ -80,16 +84,16 @@
 			Pattern pattern = Pattern.compile("\n");
 			Matcher macher = pattern.matcher(str);
 			
-			if (!macher.find()) {
-				Pair<Integer, NodePath> nodePair = path.last();
-				NodePath onePath = nodePair.right();
-				//System.out.println(str);
-				Either<Error, JungleTreeEditor> newEither = editor.putAttribute(onePath, "text", ByteBuffer.wrap(str.getBytes()));
-				if (newEither.isA()) {
-					//error
-				}
-				this.editor = newEither.b();
-		}
+      if (!macher.find()) {
+        Pair<Integer, NodePath> nodePair = path.last();
+        NodePath onePath = nodePair.right();
+        //System.out.println(str);
+        Either<Error, JungleTreeEditor> newEither = editor.putAttribute(onePath, "text-" + elementName, ByteBuffer.wrap(str.getBytes()));
+        if (newEither.isA()) {
+          //error
+        }
+        this.editor = newEither.b();
+    }
 	}
 
 	@Override
--- a/src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlNodeCreateIndexHandler.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlNodeCreateIndexHandler.java	Fri Nov 07 02:20:07 2014 +0900
@@ -1,9 +1,5 @@
 package ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader;
 
-import java.nio.ByteBuffer;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
--- a/src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlPutAttributeCreateIndex.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/ReadXmlPutAttributeCreateIndex.java	Fri Nov 07 02:20:07 2014 +0900
@@ -15,7 +15,6 @@
 import org.xml.sax.*;
 import org.xml.sax.helpers.*;
 
-import fj.test.reflect.Name;
 
 public class ReadXmlPutAttributeCreateIndex extends DefaultHandler {
   private JungleTree tree;
@@ -59,7 +58,7 @@
     if (attributes.getLength() != 0) {
       for (int count = 0 ;attributes.getLength() > count; count++) {
     //    System.out.println(attributes.getLocalName(count) + " = " + attributes.getValue(count));
-        String key = attributes.getLocalName(count);
+        String key = elementName + "-"  + attributes.getLocalName(count);
         String value = attributes.getValue(count);
         ByteBuffer bValue = ByteBuffer.wrap(value.getBytes());
         Either<Error, JungleTreeEditor> newEither = editor.putAttribute(path,key , bValue);
@@ -81,7 +80,8 @@
       if (!macher.find()) {
         Pair<Integer, NodePath> nodePair = path.last();
         NodePath onePath = nodePair.right();
-        System.out.println(str);
+        if (str.equals("o:9"))
+          System.out.println(onePath.toString());
         Either<Error, JungleTreeEditor> newEither = editor.putAttribute(onePath, "text-" + elementName, ByteBuffer.wrap(str.getBytes()));
         if (newEither.isA()) {
           //error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/ac/jp/u_ryukyu/cr/ie/tatsuki/xmlReader/loadXml.java	Fri Nov 07 02:20:07 2014 +0900
@@ -0,0 +1,68 @@
+package ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
+
+import org.xml.sax.SAXException;
+
+public class loadXml {
+
+  Jungle jungle;
+  SAXParserFactory saxParserFactory;
+
+  public loadXml() {
+    saxParserFactory = SAXParserFactory.newInstance();
+    jungle = new DefaultJungle(null, "jungle", new DefaultTreeEditor(new DefaultTraverser()));
+  }
+
+  private JungleTree putTestDataCreate(String xmlName, JungleTree tree) throws FileNotFoundException,
+      SAXException, IOException, ParserConfigurationException {
+    SAXParser saxParser = saxParserFactory.newSAXParser();
+    ReadXmlPutAttributeCreateIndex readXmlHandler = new ReadXmlPutAttributeCreateIndex(tree);
+    saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler);
+    JungleTree newTree = readXmlHandler.getTree();
+
+    return newTree;
+
+  }
+
+  private JungleTree createNodeTestData(String xmlName) throws FileNotFoundException, SAXException,
+      IOException, ParserConfigurationException {
+    SAXParser saxParser = saxParserFactory.newSAXParser();
+    JungleTree tree = jungle.createNewTree(xmlName);
+    ReadXmlNodeCreateIndexHandler readXmlHandler = new ReadXmlNodeCreateIndexHandler(tree);
+    saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler);
+    JungleTree nodeTree = readXmlHandler.getTree();
+    JungleTree newTree = putTestDataCreate(xmlName, nodeTree);
+    return newTree;
+  }
+
+  public JungleTree loadTestDataCreateIndex(String xmlName) throws FileNotFoundException, SAXException, IOException, ParserConfigurationException{
+    JungleTree newTree =  createNodeTestData(xmlName);
+    return newTree;
+  }
+  
+  public JungleTree loadTestData(String xmlName) throws FileNotFoundException, SAXException, IOException,
+      ParserConfigurationException {
+    SAXParser saxParser = saxParserFactory.newSAXParser();
+    JungleTree tree = jungle.createNewTree(xmlName);
+    ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
+    saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler);
+    JungleTree newTree = readXmlHandler.getTree();
+
+    return newTree;
+
+  }
+
+}
--- a/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java	Fri Nov 07 02:20:07 2014 +0900
@@ -5,6 +5,7 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.loadXml;
 import fj.Ord;
 import fj.P2;
 import fj.data.TreeMap;
@@ -23,13 +24,23 @@
   JungleTree roleTree;
   JungleTree rdeTree;
 
-  public JuGrix() {
+  public JuGrix(boolean index) {
+
     try {
       loadXml reader = new loadXml();
-      personTree = reader.loadTestDataCreateIndex("Person.xml");
-      organizationTree = reader.loadTestDataCreateIndex("Organization.xml");
-      roleTree = reader.loadTestDataCreateIndex("Role.xml");
-      rdeTree = reader.loadTestDataCreateIndex("RoleDescriptionElement.xml");
+
+      if (index == true) {
+        personTree = reader.loadTestDataCreateIndex("Person.xml");
+        organizationTree = reader.loadTestDataCreateIndex("Organization.xml");
+        roleTree = reader.loadTestDataCreateIndex("Role.xml");
+        rdeTree = reader.loadTestDataCreateIndex("RoleDescriptionElement.xml");
+      } else {
+        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();
     }
@@ -111,6 +122,9 @@
   public boolean filter(String orgId, LinkedList<String> roleIds) {
     if (roleIds == null)
       return true;
+    
+    if (roleIds.isEmpty())
+      return true;
 
     InterfaceTraverser orgTraverser = organizationTree.getTraverser();
 
@@ -131,27 +145,27 @@
     if (!orgNodeIterator.hasNext())
       return false;
 
-    Pair<TreeNode, NodePath> searchNode = orgNodeIterator.next();
+    Pair<TreeNode, NodePath> searchNodePair = orgNodeIterator.next();
 
     for (String id : roleIds) {
       Pattern personPattern = Pattern.compile("r:");
       Matcher personMacher = personPattern.matcher(id);
       if (personMacher.find()) {
-        if (!roleFilter(id, searchNode))
+        if (roleFilter(id, searchNodePair))
           return false;
       }
 
       Pattern organizationPattern = Pattern.compile("rde:");
       Matcher organizationMacher = organizationPattern.matcher(id);
       if (organizationMacher.find()) {
-        if (!rdeFilter(id, searchNode))
+        if (!rdeFilter(id, searchNodePair))
           return false;
       }
     }
     return true;
   }
 
-  private boolean rdeFilter(String id, Pair<TreeNode, NodePath> targetNode) {
+  private boolean rdeFilter(String id, Pair<TreeNode, NodePath> searchNodePair) {
 
     InterfaceTraverser orgTraverser = organizationTree.getTraverser();
     Iterator<Pair<TreeNode, NodePath>> pairIdIterator = orgTraverser.findInSubTree((TreeNode node) -> {
@@ -164,7 +178,7 @@
       if (roleId != null)
         return true;
       return false;
-    }, targetNode, "element", "roleRefId");
+    }, searchNodePair, "element", "roleRefId");
 
     TreeMap<String, String> idMap = TreeMap.empty(Ord.stringOrd);
     for (; pairIdIterator.hasNext();) {
@@ -177,7 +191,6 @@
 
     for (; ids.hasNext();) {
       String roleId = ids.next()._1();
-      
       Iterator<Pair<TreeNode, NodePath>> roleNodeIterator = roleTraverser.find((TreeNode node) -> {
         String element = node.getAttributes().getString("element");
         if (element == null)
@@ -191,9 +204,9 @@
           return true;
         return false;
       }, "id", roleId);
-      
       // -----------------------------------------bug------------------------------------------
       for (; roleNodeIterator.hasNext();) {
+        Pair<TreeNode, NodePath> rolePair = roleNodeIterator.next();
         Iterator<Pair<TreeNode, NodePath>> rdeNodeIterator = roleTraverser.findInSubTree((TreeNode node) -> {
           String elementName = node.getAttributes().getString("element");
           if (elementName == null)
@@ -208,7 +221,7 @@
           if (personMacher.find())
             return true;
           return false;
-        }, roleNodeIterator.next(), "text", "id");
+        }, rolePair, "text", "id");
 
         if (!rdeNodeIterator.hasNext())
           return false;
@@ -218,7 +231,8 @@
     return true;
   }
 
-  public boolean roleFilter(String id, Pair<TreeNode, NodePath> orgPathNodePair) {
+  public boolean roleFilter(String id, Pair<TreeNode, NodePath> searchNodePair) {
+    //System.out.println(searchNodePair.getAttributes().getString("id"));
     InterfaceTraverser orgTraverser = organizationTree.getTraverser();
 
     Iterator<Pair<TreeNode, NodePath>> pairIdIterator = orgTraverser.findInSubTree((TreeNode node) -> {
@@ -233,13 +247,13 @@
       if (roleId.equals(id))
         return true;
       return false;
-    }, orgPathNodePair, "text", id);
+    }, searchNodePair, "text", id);
 
     if (pairIdIterator.hasNext()) {
       System.out.println(pairIdIterator.next().left().getAttributes().getString("text"));
-      return true;
+      return false;
     }
-    return false;
+    return true;
   }
 
   public Iterator<String> roleIds(String id) {
@@ -292,7 +306,6 @@
         return false;
       }, searchTargetPair, "element", "roleRefId");
 
-      
       for (; pairIdIterator.hasNext();) {
         Pair<TreeNode, NodePath> idNodePath = pairIdIterator.next();
         String attribute = idNodePath.left().getAttributes().getString("text");
@@ -305,7 +318,7 @@
 
         if (attribute != null) {
           ids.add(attribute);
-          //System.out.println("-------------------------" + attribute + "-------------------------");
+          System.out.println("-------------------------" + attribute + "-------------------------");
         }
       }
     }
@@ -315,34 +328,46 @@
   public Iterator<String> competentRoleId(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> personPathNodePair = pairPersonIterator.next();
-     TreeNode person = personPathNodePair.left();
-     
+    Pair<TreeNode, NodePath> person = pairPersonIterator.next();
+
     Iterator<Pair<TreeNode, NodePath>> targetPairIterator = ifTraverser.findInSubTree((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");
+      String priority = node.getAttributes().getString("text-priority");
       if (priority == null)
         return false;
       if (priority.equals("0"))
         return true;
       return false;
-    }, personPathNodePair, "text", "0");
+    }, person, "text-priority", "0");
 
     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, targetPath);
-      String id = targetNode.getAttributes().getString("text");
+      TreeNode targetNode = getTarget(personTree.getRootNode(), targetPath);
+      // TreeNode targetNode = getTarget(person.left(), targetPath);
+      String id = targetNode.getAttributes().getString("text-roleRefId");
       idList.add(id);
     }
 
@@ -356,9 +381,8 @@
 
     if (!pairPersonIterator.hasNext())
       return new NullIterator();
-    
-    Pair<TreeNode, NodePath> personNodePathPair = pairPersonIterator.next();
-    TreeNode person = personNodePathPair.left();
+    Pair<TreeNode, NodePath> person = pairPersonIterator.next();
+
     Iterator<Pair<TreeNode, NodePath>> targetPairIterator = ifTraverser.findInSubTree((TreeNode node) -> {
       String nodeElement = node.getAttributes().getString("element");
       if (nodeElement == null)
@@ -371,15 +395,14 @@
       if (!priority.equals("0"))
         return true;
       return false;
-    }, personNodePathPair, "text", "0");
+    }, person, "text", "0");
 
-    
     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, targetPath);
+      TreeNode targetNode = getTarget(person.left(), targetPath);
       String id = targetNode.getAttributes().getString("text");
       idList.add(id);
     }
@@ -387,22 +410,6 @@
     return idList.iterator();
   }
 
-  private Iterator<Pair<TreeNode, NodePath>> searchPerson(String personId, InterfaceTraverser 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("id");
-      if (nodeId == null)
-        return false;
-      if (nodeId.equals(personId))
-        return true;
-      return false;
-    }, "element", "Person");
-    return pairPersonIterator;
-  }
 
   public Iterator<String> deepPersonIds(String orgId, LinkedList<String> filterIds) {
 
@@ -450,26 +457,27 @@
   }
 
   public Iterator<String> childOrganizationIds(String orgId, LinkedList<String> filterIds) {
-    if (!filter(orgId, filterIds))
-      return new NullIterator();
+
     InterfaceTraverser orgTraverser = organizationTree.getTraverser();
+
     Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = orgTraverser.find((TreeNode node) -> {
       String nodeElement = node.getAttributes().getString("element");
       if (nodeElement == null)
         return false;
       if (!nodeElement.equals("Organization"))
         return false;
-      String nodeId = node.getAttributes().getString("id");
+      String nodeId = node.getAttributes().getString("Organization-id");
       if (nodeId == null)
         return false;
       if (nodeId.equals(orgId))
         return true;
       return false;
-    }, "id", orgId);
+    }, "Organization-id", orgId);
 
     if (!pairPersonIterator.hasNext())
       return new NullIterator();
-    Pair<TreeNode, NodePath> personPathNodePair = pairPersonIterator.next();
+
+    Pair<TreeNode, NodePath> person = pairPersonIterator.next();
 
     Iterator<Pair<TreeNode, NodePath>> chilrenOrgIdsIterator = orgTraverser.findInSubTree((TreeNode node) -> {
       String nodeElement = node.getAttributes().getString("element");
@@ -478,32 +486,32 @@
       if (nodeElement.equals("childOrganizations"))
         return true;
       return false;
-    }, personPathNodePair, "element", "childOrganizations");
+    }, person, "element", "childOrganizations");
 
     if (!chilrenOrgIdsIterator.hasNext())
       return new NullIterator();
 
-     Pair<TreeNode, NodePath> chilerenOrgIdsPathNodePair = chilrenOrgIdsIterator.next();
+    Pair<TreeNode, NodePath> chilerenOrgIds = chilrenOrgIdsIterator.next();
 
-    Iterator<Pair<TreeNode, NodePath>> chilrenOrgIdIterator = orgTraverser.findInSubTreeAllValue((TreeNode node) -> {
+    Iterator<Pair<TreeNode, NodePath>> chilrenOrgIdIterator = orgTraverser.findInSubTree((TreeNode node) -> {
       String nodeElement = node.getAttributes().getString("element");
       if (nodeElement == null)
         return false;
       if (!nodeElement.equals("organizationRefIds"))
         return false;
-      nodeElement = node.getAttributes().getString("text");
+      nodeElement = node.getAttributes().getString("text-organizationRefIds");
       if (nodeElement != null)
         return true;
       return false;
-    }, chilerenOrgIdsPathNodePair, "text");
+    }, chilerenOrgIds, "text-organizationRefIds", null);
 
     LinkedList<String> ids = new LinkedList<String>();
 
     for (; chilrenOrgIdIterator.hasNext();) {
-      Pair<TreeNode, NodePath> aaa = chilrenOrgIdIterator.next();
-      String path = aaa.right().toString();
-      String id = aaa.left().getAttributes().getString("text");
-      ids.add(id);
+      String childrenOrgId = chilrenOrgIdIterator.next().left().getAttributes().getString("text-organizationRefIds");
+      if (filter(childrenOrgId, filterIds))
+        ids.add(childrenOrgId);
+
     }
 
     return ids.iterator();
@@ -544,7 +552,6 @@
   }
 
   public String rolePriority(String personId, String roleId) {
-    
     InterfaceTraverser personTraverser = personTree.getTraverser();
     Iterator<Pair<TreeNode, NodePath>> personIterator = personTraverser.find((TreeNode node) -> {
       String element = node.getAttributes().getString("element");
@@ -563,9 +570,8 @@
     if (!personIterator.hasNext())
       return "";
 
-     Pair<TreeNode, NodePath> targetPersonPathNodePair = personIterator.next();
-     TreeNode targetPersonNode = targetPersonPathNodePair.left();
-     
+    Pair<TreeNode, NodePath> targetNode = personIterator.next();
+
     Iterator<Pair<TreeNode, NodePath>> priorityIterator = personTraverser.findInSubTree((TreeNode node) -> {
       String element = node.getAttributes().getString("element");
       if (element == null)
@@ -578,14 +584,14 @@
       if (compareRoleId.equals(roleId))
         return true;
       return false;
-    }, targetPersonPathNodePair, "element", "roleRefId");
+    }, targetNode, "element", "roleRefId");
 
     for (; priorityIterator.hasNext();) {
       Pair<TreeNode, NodePath> priorityPair = priorityIterator.next();
       NodePath roleNodePath = priorityPair.right();
       Pair<Integer, NodePath> last = roleNodePath.last();
       NodePath priorityNodePath = last.right().add(last.left() - 1);
-      TreeNode priorityNode = getTarget(targetPersonNode, priorityNodePath);
+      TreeNode priorityNode = getTarget(targetNode.left(), priorityNodePath);
       if (priorityNode.getAttributes().getString("element").equals("priority"))
         return priorityNode.getAttributes().getString("text");
     }
@@ -616,6 +622,8 @@
     if (!orgIterator.hasNext())
       return new LinkedList<String>();
 
+    Pair<TreeNode, NodePath> orgNode = orgIterator.next();
+
     Iterator<Pair<TreeNode, NodePath>> parentOrgIterator = orgTraverser.findInSubTree((TreeNode node) -> {
       String element = node.getAttributes().getString("element");
       if (element == null)
@@ -623,12 +631,12 @@
       if (element.equals("parentOrganizations"))
         return true;
       return false;
-    }, orgIterator.next(), "element", "parentOrganizations");
+    }, orgNode, "element", "parentOrganizations");
 
     LinkedList<String> parentIds = new LinkedList<String>();
 
     for (; parentOrgIterator.hasNext();) {
-       Pair<TreeNode, NodePath> parentOrgPathNodePair = parentOrgIterator.next();
+      Pair<TreeNode, NodePath> parentOrgNode = parentOrgIterator.next();
 
       Iterator<Pair<TreeNode, NodePath>> parentNodeIterator = orgTraverser.findInSubTree((TreeNode node) -> {
         String element = node.getAttributes().getString("element");
@@ -640,7 +648,7 @@
         if (parentId != null)
           return true;
         return false;
-      }, parentOrgPathNodePair, "element", "organizationRefId");
+      }, parentOrgNode, "element", "organizationRefId");
 
       for (; parentNodeIterator.hasNext();) {
         String parentId = parentNodeIterator.next().left().getAttributes().getString("text");
@@ -730,22 +738,6 @@
   }
 
   public Iterator<String> roleDescriptionElementIds(String id, LinkedList<String> filterIds) {
-    Pattern personPattern = Pattern.compile("p:");
-    Matcher personMacher = personPattern.matcher(id);
-    if (personMacher.find()) {
-      return searchRoleIds(personTree, id, "Person");
-    }
-
-    Pattern organizationPattern = Pattern.compile("o:");
-    Matcher organizationMacher = organizationPattern.matcher(id);
-    if (organizationMacher.find()) {
-      return _roleDescriptionElementIds(id, filterIds);
-    }
-
-    return null;
-  }
-
-  public Iterator<String> _roleDescriptionElementIds(String id, LinkedList<String> filterIds) {
 
     Iterator<String> orgIds = deepParentOrganizationIdsPlus(id, filterIds);
 
@@ -789,6 +781,7 @@
     if (!roleIterator.hasNext())
       return "";
 
+    Pair<TreeNode, NodePath> roleNode = roleIterator.next();
 
     Iterator<Pair<TreeNode, NodePath>> rdeIterator = traverser.findInSubTree((TreeNode node) -> {
       String element = node.getAttributes().getString("element");
@@ -800,7 +793,7 @@
       if (rde != null)
         return true;
       return false;
-    }, roleIterator.next(), "element", "roleDescriptionElementRefIds");
+    }, roleNode, "element", "roleDescriptionElementRefIds");
 
     if (!rdeIterator.hasNext())
       return "";
--- a/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/loadXml.java	Wed Oct 29 15:48:19 2014 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-package jp.ac.u_ryukyu.cr.ie.tatsuki.bbs;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.CreateBoardMessageServlet;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
-
-import org.xml.sax.SAXException;
-
-import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler;
-import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlNodeCreateIndexHandler;
-import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlPutAttributeCreateIndex;
-
-public class loadXml {
-
-  Jungle jungle;
-  SAXParserFactory saxParserFactory;
-
-  public loadXml() {
-    saxParserFactory = SAXParserFactory.newInstance();
-    jungle = new DefaultJungle(null, "jungle", new DefaultTreeEditor(new DefaultTraverser()));
-  }
-
-  private JungleTree putTestDataCreate(String xmlName, JungleTree tree) throws FileNotFoundException,
-      SAXException, IOException, ParserConfigurationException {
-    SAXParser saxParser = saxParserFactory.newSAXParser();
-    ReadXmlPutAttributeCreateIndex readXmlHandler = new ReadXmlPutAttributeCreateIndex(tree);
-    saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler);
-    JungleTree newTree = readXmlHandler.getTree();
-
-    return newTree;
-
-  }
-
-  private JungleTree createNodeTestData(String xmlName) throws FileNotFoundException, SAXException,
-      IOException, ParserConfigurationException {
-    SAXParser saxParser = saxParserFactory.newSAXParser();
-    JungleTree tree = jungle.createNewTree(xmlName);
-    ReadXmlNodeCreateIndexHandler readXmlHandler = new ReadXmlNodeCreateIndexHandler(tree);
-    saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler);
-    JungleTree nodeTree = readXmlHandler.getTree();
-    JungleTree newTree = putTestDataCreate(xmlName, nodeTree);
-    return newTree;
-  }
-
-  public JungleTree loadTestDataCreateIndex(String xmlName) throws FileNotFoundException, SAXException, IOException, ParserConfigurationException{
-    JungleTree newTree =  createNodeTestData(xmlName);
-    return newTree;
-  }
-  
-  public JungleTree loadTestData(String xmlName) throws FileNotFoundException, SAXException, IOException,
-      ParserConfigurationException {
-    SAXParser saxParser = saxParserFactory.newSAXParser();
-    JungleTree tree = jungle.createNewTree(xmlName);
-    ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
-    saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler);
-    JungleTree newTree = readXmlHandler.getTree();
-
-    return newTree;
-
-  }
-
-}
--- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java	Fri Nov 07 02:20:07 2014 +0900
@@ -4,12 +4,13 @@
 import java.util.LinkedList;
 
 import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix;
-import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.loadXml;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
 import junit.framework.Assert;
 
 import org.junit.Test;
 
+import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.loadXml;
+
 public class PersonIdsTest {
 
 	@Test
--- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/childOrganizationIds.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/childOrganizationIds.java	Fri Nov 07 02:20:07 2014 +0900
@@ -1,6 +1,7 @@
 package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest;
 
 import java.util.Iterator;
+import java.util.LinkedList;
 
 import org.junit.Assert;
 import org.junit.Test;
@@ -11,11 +12,19 @@
 
 	@Test
 	public void childOrganizationIdsTest(){
-		JuGrix jugrix = new JuGrix();
-		Iterator<String> ids = jugrix.childOrganizationIds("o:2", null);
+		JuGrix jugrix = new JuGrix(false);
+		LinkedList<String> list = new LinkedList<String>();
+		Iterator<String> ids = jugrix.childOrganizationIds("o:2", list);
 		
 		Assert.assertTrue(ids.hasNext());
 		Assert.assertEquals(ids.next(),"o:3");
-		Assert.assertEquals(ids.next(),"o:99");
+		Assert.assertEquals(ids.next(),"o:9");
+		
+    JuGrix indexJugrix = new JuGrix(true);
+    ids = indexJugrix.childOrganizationIds("o:2", list);
+    
+    Assert.assertTrue(ids.hasNext());
+    Assert.assertEquals(ids.next(),"o:3");
+    Assert.assertEquals(ids.next(),"o:9");
 	}
 }
--- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/competentRoleIdTest.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/competentRoleIdTest.java	Fri Nov 07 02:20:07 2014 +0900
@@ -11,7 +11,7 @@
 
 	@Test
 	public void competentRoleIdTest(){
-		JuGrix jugrix = new JuGrix();
+		JuGrix jugrix = new JuGrix(false);
 		Iterator<String> 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/isActiveTest.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/isActiveTest.java	Fri Nov 07 02:20:07 2014 +0900
@@ -10,7 +10,6 @@
 import javax.xml.parsers.SAXParserFactory;
 
 import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix;
-import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.loadXml;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
@@ -22,6 +21,7 @@
 import org.xml.sax.SAXException;
 
 import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler;
+import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.loadXml;
 
 public class isActiveTest {
     
--- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/xmlReadTest/ReadXmlTest.java	Wed Oct 29 15:48:19 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/xmlReadTest/ReadXmlTest.java	Fri Nov 07 02:20:07 2014 +0900
@@ -11,7 +11,7 @@
     @Test
     public void Readml(){
         long t1 = System.currentTimeMillis();
-        JuGrix jugrix = new JuGrix();
+        JuGrix jugrix = new JuGrix(true);
         long t2 = System.currentTimeMillis();
         System.out.println(t2 - t1 + "s");
     }