view src/jungle/test/codesegment/practice/ShowAttribute.java @ 21:1abbfc8f11f2

add ShowAttribute
author one
date Sun, 30 Jun 2013 04:18:12 +0900
parents
children 2232263d449b
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) {
			System.out.println(n.getAttributes().get("key1"));
		}
		
		System.exit(0);
		
		
	}

}