view src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/oldTree/Index.java @ 10:2af5af044947

add createXML and Index
author one
date Tue, 18 Nov 2014 15:09:50 +0900
parents
children cc219065cea3
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.tatsuki.oldTree;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import java.util.Random;

import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;

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;
import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.LoadXml;

public class Index {

  public static void main(String args[]) throws FileNotFoundException, SAXException, IOException,
      ParserConfigurationException {

    LoadXml readerIndex = new LoadXml();

    JungleTree personTreeIndex = readerIndex.loadTestDataCreateIndex("test.xml");
    InterfaceTraverser traverserIndex = personTreeIndex.getTraverser();
    search(traverserIndex, "Index");

    // LoadXml reader = new LoadXml();
    // JungleTree personTree = reader.loadTestData("test.xml");
    // InterfaceTraverser traverser = personTree.getTraverser();
    // search(traverser, "Normal");
    System.out.println("test");

  }

  public static void search(InterfaceTraverser traverser, String type) {

    Random rnd = new Random();
    List<String> str = List.nil();
    System.out.println("start");
    str = str.cons(String.valueOf(rnd.nextInt(1000)));

    long t1 = System.currentTimeMillis();

    for (String attribute : str) {

      Iterator<Pair<TreeNode, NodePath>> pair = traverser.find((TreeNode node) -> {
        Iterator<String> element = node.getAttributes().getString("element");
        if (!element.hasNext())
          return false;
        if (!element.next().equals("element"))
          return false;

        Iterator<String> id = node.getAttributes().getString("element-id");
        if (!id.hasNext())
          return false;
        if (id.next().equals(attribute))
          return true;
        return false;
      }, "element-id", attribute);

      for (; pair.hasNext();) {
        pair.next();
      }
    }
    long t2 = System.currentTimeMillis();
    System.out.println(type + " : time = " + (t2 - t1));
  }

}