View Javadoc
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   * Implements storage of string properties in Google App Engine's Big Table
15   * datastore.
16   * 
17   * @author dave
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  }