1 package xuml.tools.datastore.gae;
2
3 import xuml.tools.datastore.DatastoreText;
4
5 import com.google.appengine.api.datastore.DatastoreService;
6 import com.google.appengine.api.datastore.DatastoreServiceFactory;
7 import com.google.appengine.api.datastore.Entity;
8 import com.google.appengine.api.datastore.EntityNotFoundException;
9 import com.google.appengine.api.datastore.Key;
10 import com.google.appengine.api.datastore.KeyFactory;
11 import com.google.appengine.api.datastore.Text;
12
13
14
15
16
17
18
19
20 public class DatastoreTextGae implements DatastoreText {
21
22 private static DatastoreText datastore = new DatastoreTextGae();
23
24 public static DatastoreText instance() {
25 return datastore;
26 }
27
28 @Override
29 public void put(String kind, String name, String property, String value) {
30 DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
31 Key k = KeyFactory.createKey(kind, name);
32 System.out.println("putting " + k + "=" + value);
33 Entity ent = new Entity(k);
34 ent.setProperty(property, new Text(value));
35 ds.put(ent);
36 }
37
38 @Override
39 public String get(String kind, String name, String property) {
40 System.out.println("getting");
41 DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
42 Key k = KeyFactory.createKey(kind, name);
43 String result;
44 try {
45 Entity ent = ds.get(k);
46 System.out.println(ent.getProperties());
47 Text prop = (Text) ent.getProperty(property);
48 System.out.println("Datastore.get " + k + "= " + prop);
49 if (prop != null)
50 result = prop.getValue();
51 else
52 result = null;
53 } catch (EntityNotFoundException e) {
54 System.out.println(e.getMessage());
55 result = null;
56 }
57 System.out.println("get returns " + result);
58 return result;
59 }
60
61 }