Mercurial > hg > Members > tatsuki > jungle-bench
view src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementCreateIndex.java @ 20:195c1a644550
benchmark add
author | tatsuki |
---|---|
date | Tue, 17 Mar 2015 15:37:19 +0900 |
parents | 917ecf2c7350 |
children | c8d8864714d4 |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.tatsuki.xml; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; import java.util.Iterator; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeContext; import org.xml.sax.SAXException; import fj.Ord; import fj.data.List; import fj.data.TreeMap; import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungleTree; 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.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex; public class TimeMeasurementCreateIndex { public static void main(String args[]) throws FileNotFoundException, ParserConfigurationException, SAXException, IOException { int maxPersonCount = Integer.parseInt(args[0]); Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser())); JungleTree orgTree = readXml("Organization", jungle); JungleTree roleTree = readXml("Role", jungle); File file = new File("./time/createParentIndexUntil"); file.delete(); for (int personCount = 0; personCount <= maxPersonCount;) { JungleTree tree = createJungleTree("Tree"); JungleTreeEditor editor = tree.getTreeEditor(); NodePath path = new DefaultNodePath(); editor = editor.addNewChildAt(path, 0).b(); editor = editor.putAttribute(path.add(0), "element", ByteBuffer.wrap("Persons".getBytes())).b(); for (int count = 0; count < personCount; count++) { editor = extendXmlTree.extendsTree(editor, orgTree, roleTree, count); } editor.success(); personCount = personCount + 10; System.out.println("personCount" + personCount); } } private static JungleTree createJungleTree(final String name) { ChangeList list = new ChangeList() { @Override public Iterator<TreeOperation> iterator() { List<TreeOperation> nil = List.nil(); return nil.iterator(); } @Override public String uuid() { return "hoge"; } @Override public String getTreeName() { return name; } }; DefaultTreeNode root = new DefaultTreeNode(); TreeMap<String, TreeMap<String, TreeMap<TreeNode, TreeNode>>> indexList = TreeMap.empty(Ord.stringOrd); // TreeMap<TreeNode, TreeNode> parentIndex = new ParentIndex().getParentIndex(); ParentIndex parentIndex = new ParentIndex(); TreeContext tc = new DefaultTreeContext(root, null, list, "hoge", name, 0, indexList, parentIndex.getParentIndex()); JungleTree newTree = new DefaultJungleTree(tc, "hoge", new NullJournal().getWriter(), new DefaultTreeEditor( new DefaultTraverser())); return newTree; } private static JungleTree readXml(String xml, Jungle jungle) throws ParserConfigurationException, SAXException, IOException, FileNotFoundException { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); SAXParser saxParser = saxParserFactory.newSAXParser(); JungleTree tree = jungle.createNewTree(xml); ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree); String currentPath = System.getProperty("user.dir"); saxParser.parse(new FileInputStream(currentPath + "/xml/" + xml + ".xml"), readXmlHandler); return readXmlHandler.getTree(); } }