comparison 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
comparison
equal deleted inserted replaced
57:1bfd13f831ea 58:4851344e120e
1 package jungle.test.alice;
2
3 import java.io.IOException;
4
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
11 import jungle.test.bbs.JungleManager;
12 import jungle.test.core.practice.PrintChildrenAttribute;
13 import alice.codesegment.CodeSegment;
14 import alice.datasegment.CommandType;
15 import alice.datasegment.Receiver;
16 import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer;
17
18 public class CopyAttrJungle2 extends CodeSegment {
19
20 Receiver logReceiver = ids.create(CommandType.TAKE);
21 Receiver countReceiver = ids.create(CommandType.TAKE);
22
23 public CopyAttrJungle2() {
24 logReceiver.setKey("log");
25 countReceiver.setKey("count2");
26 }
27
28 public void run() {
29 System.out.println("CopyAttrJungle2");
30 int count = countReceiver.asInteger();
31 DefaultTreeOperationLogContainer container = logReceiver.asClass(DefaultTreeOperationLogContainer.class);
32 DefaultTreeOperationLog log = null;
33 try {
34 log = container.convert();
35 } catch (IOException e) {
36 e.printStackTrace();
37 System.exit(0);
38 }
39 String treeName = container.getTreeName();
40 DoubleJungleManager djm = new DoubleJungleManager();
41 Jungle jungle2 = djm.getJungle2();
42 JungleTree tree = jungle2.getTreeByName(treeName);
43
44 JungleTreeEditor editor = tree.getTreeEditor();
45 Either<Error, JungleTreeEditor> either = djm.edit(editor, log);
46 if (either.isA()) {
47 throw new IllegalStateException();
48 }
49 editor = either.b();
50 editor.success();
51 new CheckDoubleTreeAttr();
52 ods.update("count", count);
53 }
54
55 }