Mercurial > hg > Database > jungle-network
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); + } + +}