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