view src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/ReadJungleThread.java @ 17:917ecf2c7350

function Measurement
author one
date Wed, 24 Dec 2014 15:48:32 +0900
parents src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FunctionThread.java@89478f2ea07f
children 17cc11b04157
line wrap: on
line source

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

import java.util.Iterator;
import java.util.Random;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;

public class ReadJungleThread extends Thread {

    JungleTree tree;
    int findCount;
    boolean loop = true;

    public ReadJungleThread(JungleTree tree) {
        this.tree = tree;
        this.findCount = 0;
    }

    public int getFindCount() {
        return findCount;
    }

    public void set(boolean loop) {
        this.loop = loop;
    }

    @Override
    public void run() {
        while (loop) {
            
            findCount++;
            Random rnd = new Random();

            String value = String.valueOf(rnd.nextInt(1000));
            InterfaceTraverser traverser = tree.getTraverser(true);
            Iterator<TreeNode> resultIterator = traverser.find(
                    (TreeNode node) -> {
                        String nodeValue = node.getAttributes().getString("KEY");
                        if (nodeValue == null)
                            return false;
                        if (nodeValue.equals(value))
                            return true;
                        return false;
                    }, "KEY", value);

            for (; resultIterator.hasNext();) {
                resultIterator.next();
            }

        }
    }
}