view src/test/alice/jungle/codesegment/PutAttrJungle1.java @ 35:054dc02c117d

add test.alice.jungle.codesegment
author one
date Tue, 02 Jul 2013 17:49:23 +0900
parents
children
line wrap: on
line source

package test.alice.jungle.codesegment;

import java.nio.ByteBuffer;

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.store.impl.DefaultNodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;

public class PutAttrJungle1 extends CodeSegment {
	
	Receiver arg1 = ids.create(CommandType.TAKE);
	
	public PutAttrJungle1() {
		arg1.setKey("count1");
	}
	
	public void run() {
		System.out.println("PutAttrJungle1");
		int count = arg1.asInteger();
		Jungle jungle1 = new DoubleJungleManager().getJungle1();
		JungleTree tree = jungle1.getTreeByName("tree");
		JungleTreeEditor editor = tree.getTreeEditor();
		DefaultNodePath root = new DefaultNodePath();
		Either<Error, JungleTreeEditor> either =  editor.addNewChildAt(root, 0);
		if(either.isA()) {
			throw new IllegalStateException();
		}
		editor = either.b();
		either = editor.putAttribute(root.add(0), "key", ByteBuffer.wrap("message".getBytes()));
		if(either.isA()) {
			throw new IllegalStateException();
		}
		editor = either.b();
		editor.success();
		
		new CopyAttrJungle2();
		ods.update("count2", count);
		
	}

}