# HG changeset patch # User one # Date 1414190882 -32400 # Node ID 47eb9ee2a1dbba38f8aaca7721a4ea90da54d70d # Parent 109d552e4bb613f334a98a0a02940757a3b1353e add PersonIdsTest and Method add isActive Test and Method diff -r 109d552e4bb6 -r 47eb9ee2a1db src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java Sat Oct 25 07:48:02 2014 +0900 @@ -0,0 +1,86 @@ +package jp.ac.u_ryukyu.cr.ie.tatsuki.bbs; + +import java.util.Iterator; + +import fj.data.List; +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; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; + +public class JuGrix { + + public boolean isActive(JungleTree tree, String id){ + + InterfaceTraverser ifTraverser = tree.getTraverser(); + Iterator> pairIterator = ifTraverser.find( + (TreeNode node) -> { + String personId = node.getAttributes().getString("id"); + if (personId == null) + return false; + if (personId.equals(id)) + return true; + return false; + } + ,"id",id); + + if (pairIterator.hasNext()) + return true; + return false; + + } + + public Iterator personIds(JungleTree tree , String id){ + + List names = personIdsSearch(tree, id); + return names.iterator(); + } + + public Iterator personIds(JungleTree tree , List ids){ + + List personIds = List.nil(); + + for (String id : ids) { + personIds = personIds.append(personIdsSearch(tree, id)); + } + return personIds.iterator(); + } + + private List personIdsSearch(JungleTree tree, String id) { + InterfaceTraverser ifTraverser = tree.getTraverser(); + Iterator> pairPersonIterator = ifTraverser.find( + (TreeNode node) -> { + String personId = node.getAttributes().getString("element"); + if (personId == null) + return false; + if (personId.equals("Person")) + return true; + return false; + } + ,"element","Person"); + + List names = List.nil(); + for (;pairPersonIterator.hasNext();) { + + Pair pairPerson = pairPersonIterator.next(); + Iterator> pairIdIterator = ifTraverser.find( + (TreeNode node) -> { + String personId = node.getAttributes().getString("text"); + if (personId == null) + return false; + if (personId.equals(id)) + return true; + return false; + } + ,pairPerson.left(),"text",id); + if (pairIdIterator.hasNext()) + names = names.cons(pairPerson.left().getAttributes().getString("id")); + + } + return names; + } + + + +} diff -r 109d552e4bb6 -r 47eb9ee2a1db src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/loadXml.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/loadXml.java Sat Oct 25 07:48:02 2014 +0900 @@ -0,0 +1,38 @@ +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.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; + +public class loadXml { + + public JungleTree loadTestData(String xmlName) + throws ParserConfigurationException, SAXException, IOException, + FileNotFoundException { + + SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); + SAXParser saxParser = saxParserFactory.newSAXParser(); + Jungle jungle = new DefaultJungle(null, "jungle", + new DefaultTreeEditor(new DefaultTraverser())); + JungleTree tree = jungle.createNewTree(xmlName); + ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree); + saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler); + JungleTree newTree = readXmlHandler.getTree(); + return newTree; + + } +} diff -r 109d552e4bb6 -r 47eb9ee2a1db src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java Sat Oct 25 07:48:02 2014 +0900 @@ -0,0 +1,31 @@ +package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest; + +import java.util.Iterator; + +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; + +public class PersonIdsTest { + + @Test + public void PersonIdsTest() { + try { + loadXml reader = new loadXml(); + JungleTree tree = reader.loadTestData("Person.xml"); + JuGrix jugrix = new JuGrix(); + Iterator ids = jugrix.personIds(tree, "o:2"); + + ids.hasNext(); + Assert.assertEquals(ids.next(),"p:45"); + ids.hasNext(); + Assert.assertEquals(ids.next(),"p:1"); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff -r 109d552e4bb6 -r 47eb9ee2a1db src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/Person_idsTest.java --- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/Person_idsTest.java Sat Oct 25 04:53:41 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Iterator; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import jp.ac.u_ryukyu.cr.ie.tatsuki.xmlReadTest.TestHandler; -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.junit.Assert; -import org.junit.Test; -import org.xml.sax.SAXException; - -import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler; - -public class Person_idsTest { - - @Test - public void Person_idsTest(){ - try { - JungleTree newTree = loadTestData(); - - Iterator names = personids(newTree); - - for (;names.hasNext();names.next()) { - Assert.assertArrayEquals(); - } - - } catch (Exception e) { - e.printStackTrace(); - } - } - - public JungleTree loadTestData() throws ParserConfigurationException, - SAXException, IOException, FileNotFoundException { - SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); - SAXParser saxParser = saxParserFactory.newSAXParser(); - Jungle jungle = new DefaultJungle(null, "jungle",new DefaultTreeEditor(new DefaultTraverser())); - JungleTree tree = jungle.createNewTree("maTrixPersons"); - ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree); - saxParser.parse(new FileInputStream("xml/Person.xml"), readXmlHandler); - JungleTree newTree = readXmlHandler.getTree(); - return newTree; - } -} diff -r 109d552e4bb6 -r 47eb9ee2a1db src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/isActiveTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/isActiveTest.java Sat Oct 25 07:48:02 2014 +0900 @@ -0,0 +1,46 @@ +package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Iterator; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +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; +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.junit.Assert; +import org.junit.Test; +import org.xml.sax.SAXException; + +import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler; + +public class isActiveTest { + + @Test + public void Person_idsTest(){ + try { + loadXml reader = new loadXml(); + JungleTree newTree = reader.loadTestData("Person.xml"); + JuGrix jugrix = new JuGrix(); + String personId = "p:1"; + + Assert.assertTrue(jugrix.isActive(newTree,personId)); + + personId = "p:100"; + Assert.assertFalse(jugrix.isActive(newTree,personId)); + + } catch (Exception e) { + e.printStackTrace(); + } + } + +}