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

add test.alice.jungle.codesegment
author one
date Tue, 02 Jul 2013 17:49:23 +0900
parents
children 1255ae20d52e
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);
		}
		DoubleJungleManager djm = new DoubleJungleManager();
		Jungle jungle2 = djm.getJungle2();
		JungleTree tree = jungle2.getTreeByName("tree");
		
		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);
		
		
		
	}
	
}