view src/test/alice/jungle/codesegment/CopyAttrJungle2.java @ 36:1255ae20d52e

remove msgpack.register in DefaultTreeOperation unconvert method
author one
date Thu, 04 Jul 2013 20:04:12 +0900
parents 054dc02c117d
children ed4c2e6ab5d1
line wrap: on
line source

package test.alice.jungle.codesegment;

import java.io.IOException;

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.logger.DefaultTreeOperationLog;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import jungle.test.codesegment.operation.JungleManager;
import jungle.test.core.practice.PrintChildrenAttribute;
import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;
import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer;

public class CopyAttrJungle2 extends CodeSegment {
	
	Receiver logReceiver = ids.create(CommandType.TAKE);
	Receiver countReceiver = ids.create(CommandType.TAKE);
	
	public CopyAttrJungle2() {
		logReceiver.setKey("log");
		countReceiver.setKey("count2");
	}

	public void run() {
		System.out.println("CopyAttrJungle2");
		int count = countReceiver.asInteger();
		DefaultTreeOperationLogContainer container = logReceiver.asClass(DefaultTreeOperationLogContainer.class);
		DefaultTreeOperationLog log = null;
		try {
			log = container.convert();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(0);
		}
		String treeName = container.getTreeName();
		DoubleJungleManager djm = new DoubleJungleManager();
		Jungle jungle2 = djm.getJungle2();
		JungleTree tree = jungle2.getTreeByName(treeName);
		
		JungleTreeEditor editor = tree.getTreeEditor();
		Either<Error, JungleTreeEditor> either = djm.edit(editor, log);
		if (either.isA()) {
			throw new IllegalStateException();				
		}
		editor = either.b();
		editor.success();
		new CheckDoubleTreeAttr();
		ods.update("count", count);
		
		
		
	}
	
}