view src/test/java/alice/jungle/log/example/FindMatrixTest.java @ 190:269bada9eedc

add
author tatsuki
date Fri, 17 Oct 2014 15:16:56 +0900
parents f9b26747ef63
children
line wrap: on
line source

package alice.jungle.log.example;



import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Iterator;

import org.junit.Test;

import fj.Ord;
import fj.data.List;
import fj.data.TreeMap;
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.core.Children;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
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.impl.TreeNodeAttributes;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.Query;
import junit.framework.TestCase;
import alice.jungle.operations.NetworkNodePath;
import alice.jungle.persistent.PersistentJournal;
import alice.jungle.persistent.PersistentJungle;
import alice.jungle.transaction.JungleUpdater;
import app.bbs.NetworkBulletinBoard;
import app.bbs.NetworkJungleBulletinBoard;

public class FindMatrixTest extends TestCase {
	
	@Test
	public static void main(String[] args) throws IOException {
	    PersistentJournal journal = new PersistentJournal();
		journal.setOutputFile(new File("./log/1.log"));
		Jungle jungle = new PersistentJungle(journal, "uuid", new DefaultTreeEditor(new DefaultTraverser()));
		
		String treeName = treeLoad(jungle);
		
		JungleTree tree = jungle.getTreeByName(treeName);
		InterfaceTraverser ifTraverser = tree.getTraverser();
		
		Iterator<Pair<TreeNode, NodePath>> searchNode = ifTraverser.find(
		        (TreeNode node) -> {
		            String attribute = node.getAttributes().getString("mes");
		            if(attribute != null){
		                System.out.println(attribute);
		                return attribute.equals("比嘉健太");
		            }
		            return false;
		        }
		        ,"mes","比嘉健太");
		
		TreeNode node = searchNode.next().left();
		byte[] nodeAttibute = node.getAttributes().get("mes").array();
		System.out.println(new String(nodeAttibute));
	}

    public static String treeLoad(Jungle jungle) throws FileNotFoundException {
        String treeName = null;
		
		for (ChangeList chList : getChangeList()) {
			treeName = chList.getTreeName();
			JungleTree tree = jungle.getTreeByName(treeName);
			if(tree == null) {
				tree = jungle.createNewTree(treeName);
			}
			JungleTreeEditor editor2 = tree.getTreeEditor();
			Either<Error, JungleTreeEditor> either2 = JungleUpdater.edit(editor2, chList);
			assertFalse(either2.isA());
			editor2 = either2.b();
			editor2.success();
		}
        return treeName;
    }

    public static ChangeListReader getChangeList() throws FileNotFoundException {
        PersistentJournal journal1 = new PersistentJournal();
		journal1.setInputFile(new File("./log/1410802370082.log"));
		ChangeListReader reader = journal1.getReader();
        return reader;
    }
}