Mercurial > hg > Members > tatsuki > jungle-bench
view src/main/java/example/SimpleJungle.java @ 3:37aab24020a0
thread test
author | Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 06 Mar 2014 04:17:40 +0900 |
parents | f716298e440a |
children |
line wrap: on
line source
package example; import java.nio.ByteBuffer; 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.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; 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.traverser.DefaultTraverser; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import junit.framework.Assert; public class SimpleJungle { public static final String key = "name"; public static final String valueString = "kanagawa"; public static final ByteBuffer value = ByteBuffer.wrap(valueString.getBytes()); public static void main(String[] args) { Jungle j = new DefaultJungle(null,"hogehoge",new DefaultTreeEditor(new DefaultTraverser())); j.createNewTree("tree");//木を作った JungleTree tree = j.getTreeByName("tree");//名前を取得 JungleTreeEditor editor1 = tree.getTreeEditor();//editorの取得 DefaultNodePath root = new DefaultNodePath();//パスの取得 //eitherに値を入れる Either<Error,JungleTreeEditor> either = editor1.putAttribute(root,key,value); if(either.isA()){//失敗した場合Aが出てくる Assert.fail(); } editor1 = either.b(); editor1.success(); //ここで初めてSUCCESS Node node = tree.getRootNode(); ByteBuffer v = node.getAttributes().get(key); System.out.println(new String(v.array())); editor1 = tree.getTreeEditor();//Treeのeditorを作成 either = editor1.addNewChildAt(root,0);//新しく入れるところへのパス if(either.isA()){//ちゃんとパスを指定できたかチェック Assert.fail(); } editor1 = either.b();//成功した場合パスを入れる DefaultNodePath childPath = root.add(0); //そしてここで子ノードに値を入れる for(int count = 0 ; count < 1000 ; count++){ either = editor1.putAttribute(childPath,key,value); if(either.isA()){ Assert.fail(); } editor1 = either.b(); either = editor1.success(); } node = tree.getRootNode(); Children<Node> children = node.getChildren(); Either<Error,Node> either2 = children.at(0); if(either2.isA()){ Assert.fail(); } Node childNode = either2.b(); ByteBuffer v2 = childNode.getAttributes().get(key); System.out.println(new String(v2.array())); } }