diff src/jungle/test/alice/CopyAttrJungle2.java @ 58:4851344e120e

fix bug LogUpdateCodeSegment and ChildLogCheckCodeSegment
author one
date Mon, 15 Jul 2013 10:13:34 +0900
parents src/test/alice/jungle/codesegment/CopyAttrJungle2.java@10359a815068
children 29127ac788a6
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jungle/test/alice/CopyAttrJungle2.java	Mon Jul 15 10:13:34 2013 +0900
@@ -0,0 +1,55 @@
+package jungle.test.alice;
+
+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.bbs.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);
+	}
+	
+}