comparison src/alice/jungle/persistence/AliceJournal.java @ 58:4851344e120e

fix bug LogUpdateCodeSegment and ChildLogCheckCodeSegment
author one
date Mon, 15 Jul 2013 10:13:34 +0900
parents src/jungle/test/codesegment/persistence/AliceJournal.java@ccfe9b5e8f11
children 3b0091c91e61
comparison
equal deleted inserted replaced
57:1bfd13f831ea 58:4851344e120e
1 package alice.jungle.persistence;
2
3 import java.nio.ByteBuffer;
4
5 import alice.jungle.datasegment.store.operations.DefaultNodeOperationContainer;
6 import alice.jungle.datasegment.store.operations.DefaultTreeOperationContainer;
7
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal;
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result;
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
17
18 public class AliceJournal implements Journal {
19
20 private static final AliceChangeListWriter ALICE_WRITER = new AliceChangeListWriter();
21 private static final AliceChangeListReader ALICE_READER = new AliceChangeListReader();
22 @Override
23 public ChangeListReader getReader() {
24 return ALICE_READER;
25 }
26 @Override
27 public ChangeListWriter getWriter() {
28 return ALICE_WRITER;
29 }
30
31 private static class AliceChangeListWriter implements ChangeListWriter
32 {
33 @Override
34 public Result write(ChangeList _operations)
35 {
36 for(TreeOperation op : _operations){
37 NodePath p = op.getNodePath();
38 NodeOperation nodeOp = op.getNodeOperation();
39 Command c = nodeOp.getCommand();
40 String args = "";
41 switch(c){
42 case PUT_ATTRIBUTE:
43 String key = nodeOp.getKey();
44 ByteBuffer value = nodeOp.getValue();
45 if(value.limit() < 100){
46 args = String.format("key:%s,value:%s",key,new String(value.array()));
47 }else{
48 args = String.format("key:%s,value:%d",key,value.limit());
49 }
50 break;
51 case DELETE_ATTRIBUTE:
52 args = String.format("key:%s",nodeOp.getKey());
53 break;
54 case APPEND_CHILD:
55 args = String.format("pos:%d",nodeOp.getPosition());
56 break;
57 case DELETE_CHILD:
58 args = String.format("pos:%d",nodeOp.getPosition());
59 break;
60 }
61 System.out.println(String.format("[%s:%s:%s]",c,p,args));
62 }
63 return Result.SUCCESS;
64 }
65 }
66
67 private static class AliceChangeListReader implements ChangeListReader
68 {
69 @Override
70 public ChangeListReader newReader()
71 {
72 return this;
73 }
74
75 @Override
76 public ChangeList read()
77 {
78 return null;
79 }
80 }
81
82
83 }