annotate src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/bbs/CassandraBulletinBoard.java @ 0:e7a9b10dd844

added cassandra bulletin board
author Shoshi TAMAKI
date Thu, 07 Feb 2013 00:26:21 +0900
parents
children 80126e22fd02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
2
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
3 import java.util.Collections;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
4 import java.util.List;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
5 import java.util.UUID;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
6
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
7 import org.apache.cassandra.locator.SimpleStrategy;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
8
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
9 import me.prettyprint.cassandra.serializers.StringSerializer;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
10 import me.prettyprint.cassandra.serializers.UUIDSerializer;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
11 import me.prettyprint.cassandra.service.CassandraHost;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
12 import me.prettyprint.cassandra.service.template.SuperCfResult;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
13 import me.prettyprint.cassandra.service.template.SuperCfUpdater;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
14 import me.prettyprint.cassandra.service.template.ThriftSuperCfTemplate;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
15 import me.prettyprint.cassandra.utils.TimeUUIDUtils;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
16 import me.prettyprint.hector.api.Cluster;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
17 import me.prettyprint.hector.api.Keyspace;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
18 import me.prettyprint.hector.api.beans.HSuperColumn;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
19 import me.prettyprint.hector.api.beans.OrderedSuperRows;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
20 import me.prettyprint.hector.api.beans.SuperRow;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
21 import me.prettyprint.hector.api.beans.SuperSlice;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
22 import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
23 import me.prettyprint.hector.api.ddl.ColumnType;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
24 import me.prettyprint.hector.api.ddl.ComparatorType;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
25 import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
26 import me.prettyprint.hector.api.factory.HFactory;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
27 import me.prettyprint.hector.api.query.QueryResult;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
28 import me.prettyprint.hector.api.query.RangeSuperSlicesQuery;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
29 import me.prettyprint.hector.api.query.SuperSliceQuery;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
30
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
31 public class CassandraBulletinBoard implements BulletinBoard
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
32 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
33 private final String address;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
34 private final String clusterName;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
35 private final Cluster cluster;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
36 private final String keyspace;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
37
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
38 private static final String COLUMN_FAMILY_BOARD = "boards";
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
39
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
40 public CassandraBulletinBoard(String _clusterName,String _address,String _keyspaceName)
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
41 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
42 address = _address;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
43 clusterName = _clusterName;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
44 keyspace = _keyspaceName;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
45 cluster = HFactory.getOrCreateCluster(clusterName,address);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
46
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
47 initialize();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
48 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
49
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
50 private void initialize()
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
51 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
52 if(cluster.describeKeyspace(keyspace) == null){
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
53 KeyspaceDefinition keyspaceDefinition = HFactory.createKeyspaceDefinition(keyspace,
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
54 SimpleStrategy.class.getName(),1,Collections.<ColumnFamilyDefinition> emptyList());
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
55 cluster.addKeyspace(keyspaceDefinition,false);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
56 ColumnFamilyDefinition columnFamilyDefinition = HFactory.createColumnFamilyDefinition(keyspace,COLUMN_FAMILY_BOARD,ComparatorType.UUIDTYPE);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
57 columnFamilyDefinition.setColumnType(ColumnType.SUPER);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
58 cluster.addColumnFamily(columnFamilyDefinition);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
59 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
60 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
61
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
62 public Iterable<String> getBoards()
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
63 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
64 Keyspace ksp = HFactory.createKeyspace(keyspace, cluster);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
65 RangeSuperSlicesQuery<String,UUID,String,String> query = HFactory.createRangeSuperSlicesQuery(ksp,StringSerializer.get(),
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
66 UUIDSerializer.get(),StringSerializer.get(),StringSerializer.get());
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
67 query.setColumnFamily(COLUMN_FAMILY_BOARD).setKeys(null,null).setRange(null,null,false,0);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
68
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
69 QueryResult<OrderedSuperRows<String,UUID,String,String>> result = query.execute();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
70 OrderedSuperRows<String,UUID,String,String> rows = result.get();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
71 List<SuperRow<String,UUID,String,String>> list = rows.getList();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
72
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
73 IterableConverter.Converter<String,SuperRow<String,UUID,String,String>> converter
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
74 = new IterableConverter.Converter<String, SuperRow<String,UUID,String,String>>(){
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
75 public String conv(SuperRow<String, UUID, String, String> _b) {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
76 return _b.getKey();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
77 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
78 };
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
79
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
80 return new IterableConverter<String,SuperRow<String,UUID,String,String>>(list,converter);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
81 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
82
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
83 private static final String COLUMN_MESSAGE_AUTHOR = "author";
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
84 private static final String COLUMN_MESSAGE_BODY = "message";
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
85 private static final String COLUMN_MESSAGE_EDIT_KEY = "edit";
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
86
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
87 public void createBoardMessage(UUID _time,String _name,String _author,String _message,String _editKey)
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
88 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
89 Keyspace ksp = HFactory.createKeyspace(keyspace,cluster);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
90 ThriftSuperCfTemplate<String,UUID,String> template =
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
91 new ThriftSuperCfTemplate<String,UUID,String>(ksp,COLUMN_FAMILY_BOARD,StringSerializer.get(),
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
92 UUIDSerializer.get(),StringSerializer.get());
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
93
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
94 SuperCfUpdater<String,UUID,String> updater = template.createUpdater(_name,_time);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
95 updater.setString(COLUMN_MESSAGE_AUTHOR,_author);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
96 updater.setString(COLUMN_MESSAGE_BODY,_message);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
97 updater.setString(COLUMN_MESSAGE_EDIT_KEY,_editKey);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
98
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
99 template.update(updater);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
100 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
101
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
102 public void createBoards(String _name,String _author,String _initMessage,String _editKey)
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
103 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
104 UUID time = TimeUUIDUtils.getTimeUUID(0);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
105 createBoardMessage(time,_name,_author,_initMessage,_editKey);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
106 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
107
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
108 public Iterable<BoardMessage> getMessages(String _boardName)
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
109 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
110 Keyspace ksp = HFactory.createKeyspace(keyspace,cluster);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
111 SuperSliceQuery<String, UUID, String, String> query = HFactory.createSuperSliceQuery(ksp, StringSerializer.get(), UUIDSerializer.get(), StringSerializer.get(), StringSerializer.get());
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
112
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
113 UUID start = TimeUUIDUtils.getTimeUUID(0);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
114 query.setKey(_boardName).setColumnFamily(COLUMN_FAMILY_BOARD).setRange(start,null,false,100);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
115
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
116 QueryResult<SuperSlice<UUID, String, String>> result = query.execute();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
117 SuperSlice<UUID,String,String> ss = result.get();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
118 List<HSuperColumn<UUID,String,String>> list = ss.getSuperColumns();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
119
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
120 IterableConverter.Converter<BoardMessage,HSuperColumn<UUID,String,String>> converter =
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
121 new IterableConverter.Converter<BoardMessage,HSuperColumn<UUID,String,String>>(){
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
122 public BoardMessage conv(HSuperColumn<UUID, String, String> _b){
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
123 UUID uuid = _b.getName();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
124 String author = _b.getSubColumnByName(COLUMN_MESSAGE_AUTHOR).getValue();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
125 String message = _b.getSubColumnByName(COLUMN_MESSAGE_BODY).getValue();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
126 BoardMessageImpl bm = new BoardMessageImpl(author,message,uuid.toString());
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
127 return bm;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
128 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
129 };
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
130
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
131
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
132 return new IterableConverter<BoardMessage,HSuperColumn<UUID,String,String>>(list,converter);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
133 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
134
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
135 private static class BoardMessageImpl implements BoardMessage
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
136 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
137 private final String author;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
138 private final String message;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
139 private final String uuid;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
140
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
141 public BoardMessageImpl(String _author,String _message,String _uuid)
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
142 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
143 author = _author;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
144 message = _message;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
145 uuid = _uuid;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
146 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
147
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
148 public String getAuthor()
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
149 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
150 return author;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
151 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
152
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
153 public String getMessage()
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
154 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
155 return message;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
156 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
157
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
158 public String getUUID()
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
159 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
160 return uuid;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
161 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
162 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
163
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
164 public void createBoardMessage(String _board, String _author, String _message,String _editKey)
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
165 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
166 UUID time = TimeUUIDUtils.getUniqueTimeUUIDinMillis();
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
167 createBoardMessage(time,_board,_author,_message,_editKey);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
168 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
169
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
170 public void editMessage(String _board,String _uuid,String _author,String _message,String _editKey)
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
171 {
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
172 Keyspace ksp = HFactory.createKeyspace(keyspace, cluster);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
173 UUID time = UUID.fromString(_uuid);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
174 ThriftSuperCfTemplate<String,UUID,String> template =
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
175 new ThriftSuperCfTemplate<String,UUID,String>(ksp,COLUMN_FAMILY_BOARD,StringSerializer.get(),
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
176 UUIDSerializer.get(),StringSerializer.get());
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
177
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
178 SuperCfResult<String,UUID,String> result = template.querySuperColumn(_board,time);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
179 String editKey = result.getString(COLUMN_MESSAGE_EDIT_KEY);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
180 if(!editKey.equals(editKey)){
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
181 return;
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
182 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
183
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
184 SuperCfUpdater<String, UUID, String> updater = template.createUpdater(_board,time);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
185 updater.setString(COLUMN_MESSAGE_AUTHOR,_author);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
186 updater.setString(COLUMN_MESSAGE_BODY,_message);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
187 updater.setString(COLUMN_MESSAGE_EDIT_KEY,_editKey);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
188
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
189 template.update(updater);
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
190 }
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
191
e7a9b10dd844 added cassandra bulletin board
Shoshi TAMAKI
parents:
diff changeset
192 }