Guest User

Untitled

a guest
Nov 21st, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. package com.zenika.zencontact.persistence.datastore;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.List;
  6.  
  7. import com.google.appengine.api.blobstore.BlobKey;
  8. import com.google.appengine.api.datastore.DatastoreService;
  9. import com.google.appengine.api.datastore.DatastoreServiceFactory;
  10. import com.google.appengine.api.datastore.Entity;
  11. import com.google.appengine.api.datastore.EntityNotFoundException;
  12. import com.google.appengine.api.datastore.Key;
  13. import com.google.appengine.api.datastore.KeyFactory;
  14. import com.google.appengine.api.datastore.PreparedQuery;
  15. import com.google.appengine.api.datastore.PropertyProjection;
  16. import com.google.appengine.api.datastore.Query;
  17. import com.google.appengine.api.datastore.Transaction;
  18. import com.zenika.zencontact.domain.User;
  19. import com.zenika.zencontact.persistence.UserDao;
  20.  
  21. public class UserDaoDatastore implements UserDao {
  22.  
  23. private static UserDaoDatastore INSTANCE = new UserDaoDatastore();
  24.  
  25. public static UserDaoDatastore getInstance() {
  26. return INSTANCE;
  27. }
  28.  
  29. public DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
  30.  
  31. public long save(User contact) {
  32. Entity e = new Entity("User");
  33. if (contact.id != null) {
  34. Key k = KeyFactory.createKey("User", contact.id);
  35. try {
  36. e = datastore.get(k);
  37. } catch (EntityNotFoundException e1) {
  38. }
  39. }
  40. e.setProperty("firstName", contact.firstName);
  41. e.setProperty("lastName", contact.lastName);
  42. e.setProperty("email", contact.email);
  43. e.setProperty("notes", contact.notes);
  44. Key key = datastore.put(e);
  45. return key.getId();
  46. }
  47.  
  48. public void delete(Long id) {
  49. Key k = KeyFactory.createKey("User", id);
  50. datastore.delete(k);
  51. }
  52.  
  53. public User get(Long id) {
  54. Entity e;
  55. try {
  56. e = datastore.get(KeyFactory.createKey("User", id));
  57. } catch (EntityNotFoundException ex) {
  58. throw new RuntimeException(ex);
  59. }
  60. return User.create().id(e.getKey().getId()).firstName((String) e.getProperty("firstName"))
  61. .lastName((String) e.getProperty("lastName")).email((String) e.getProperty("email"))
  62. .notes((String) e.getProperty("notes"));
  63. }
  64.  
  65. public List<User> getAll() {
  66. List<User> contacts = new ArrayList<>();
  67.  
  68. Query q = new Query("User").addProjection(new PropertyProjection("firstName", String.class))
  69. .addProjection(new PropertyProjection("lastName", String.class))
  70. .addProjection(new PropertyProjection("email", String.class))
  71. .addProjection(new PropertyProjection("notes", String.class));
  72.  
  73. PreparedQuery pq = datastore.prepare(q);
  74.  
  75. for (Entity e : pq.asIterable()) {
  76. contacts.add(User.create().id(e.getKey().getId()).firstName((String) e.getProperty("firstName"))
  77. .lastName((String) e.getProperty("lastName")).email((String) e.getProperty("email"))
  78. .notes((String) e.getProperty("notes")));
  79. }
  80.  
  81. return contacts;
  82. }
  83. }
Add Comment
Please, Sign In to add comment