annotate src/alice/jungle/codesegment/LogUpdateCodeSegment.java @ 46:fd3643699f83

modified pom.xml. fix conflict log4j libraries
author one
date Fri, 12 Jul 2013 11:27:00 +0900
parents 12d87bb4b84d
children 686057add8a4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
1 package alice.jungle.codesegment;
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
2
40
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
3 import java.io.IOException;
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
4
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog;
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
10 import jungle.test.bbs.JungleManager;
34
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
11 import alice.codesegment.CodeSegment;
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
12 import alice.datasegment.CommandType;
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
13 import alice.datasegment.Receiver;
40
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
14 import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer;
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 43
diff changeset
15 import alice.jungle.transaction.NetworkDefaultJungleTreeEditor;
34
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
16
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
17 public class LogUpdateCodeSegment extends CodeSegment {
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
18
42
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
19 public Receiver arg1 = ids.create(CommandType.PEEK);
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
20 private final String rh;
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
21 private final String key;
39
10359a815068 add alice.jungle.codesegment.remote
one
parents: 34
diff changeset
22
42
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
23 public LogUpdateCodeSegment(String _rh, String _key) {
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
24 rh = _rh;
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
25 key = _key;
39
10359a815068 add alice.jungle.codesegment.remote
one
parents: 34
diff changeset
26 }
10359a815068 add alice.jungle.codesegment.remote
one
parents: 34
diff changeset
27
34
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
28 public void run() {
42
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
29 System.out.println("--LogUpdateCodeSegment--");
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
30 int index = arg1.index;
40
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
31 DefaultTreeOperationLogContainer container = arg1.asClass(DefaultTreeOperationLogContainer.class);
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 43
diff changeset
32 if(updaterIsMe(container)) {
42
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
33 LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment(rh, key);
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
34 updateCS.arg1.setKey(rh, key, index+1);
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
35 return;
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
36 }
40
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
37 DefaultTreeOperationLog log = null;
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
38 try {
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
39 log = container.convert();
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
40 } catch (IOException e) {
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
41 e.printStackTrace();
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
42 }
43
12d87bb4b84d modified LogUpdateCodeSegment
one
parents: 42
diff changeset
43 JungleTree tree = JungleManager.getJungle().getTreeByName("boards");
40
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
44 JungleTreeEditor editor = tree.getTreeEditor();
43
12d87bb4b84d modified LogUpdateCodeSegment
one
parents: 42
diff changeset
45 Either<Error, JungleTreeEditor> either = JungleManager.edit(editor, log);
40
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
46 if(either.isA()) {
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
47 throw new IllegalStateException();
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
48 }
7e94de2d6bc0 add PutAnotherLogCodeSegment, PutHostLogCodeSegment
one
parents: 39
diff changeset
49 editor = either.b();
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 43
diff changeset
50 either = editor.success();
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 43
diff changeset
51 if(either.isA()) {
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 43
diff changeset
52 throw new IllegalStateException();
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 43
diff changeset
53 }
42
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
54 LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment(rh, key);
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
55 updateCS.arg1.setKey(rh, key, index+1);
34
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
56 }
42
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
57
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
58 private boolean updaterIsMe(DefaultTreeOperationLogContainer container) {
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
59
46
fd3643699f83 modified pom.xml. fix conflict log4j libraries
one
parents: 43
diff changeset
60 return false;
42
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
61 }
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
62
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
63
4419ac56cbfd implemented serverName filed
one
parents: 40
diff changeset
64
34
bf696a6334b2 add LogUpdateCodeSegment
one
parents:
diff changeset
65 }