view src/jungle/test/codesegment/practice/ShowAttribute.java @ 25:2232263d449b

print message in ShowAttribute
author one
date Sun, 30 Jun 2013 10:56:19 +0900
parents 1abbfc8f11f2
children 1d7f52c3b3d9
line wrap: on
line source

package jungle.test.codesegment.practice;

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.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.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 ShowAttribute extends CodeSegment {
	
	Receiver arg1 = ids.create(CommandType.TAKE);
	
	public ShowAttribute() {
		arg1.setKey("show");
	}
	
	public void run() {
		System.out.println("--ShowAttribute--");
		
		Jungle jungle = new JungleManager().getJungle();
		JungleTree tree = jungle.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), "key1", ByteBuffer.wrap("message".getBytes()));
		if(either.isA()) {
			throw new IllegalStateException();
		}
		editor = either.b();
		Either<Error,JungleTreeEditor> result = editor.success();
		if(result.isA()) {
			throw new IllegalStateException();
		}
		
		Node node = tree.getRootNode();
		Children<Node> chs = node.getChildren();
		for(Node n : chs) {
			ByteBuffer b = n.getAttributes().get("key1");
			System.out.println(new String(b.array()));
		}
		
		System.exit(0);
		
		
	}

}