PageRenderTime 14ms CodeModel.GetById 5ms RepoModel.GetById 0ms app.codeStats 0ms

/testing/library/src/com/google/appengine/library/JDOBookDataService.java

http://datanucleus-appengine.googlecode.com/
Java | 50 lines | 35 code | 11 blank | 4 comment | 0 complexity | 050b28553602d378a4e6577986da923f MD5 | raw file
Possible License(s): Apache-2.0
  1. // Copyright 2008 Google Inc. All Rights Reserved.
  2. package com.google.appengine.library;
  3. import java.util.Collection;
  4. import javax.jdo.JDOHelper;
  5. import javax.jdo.PersistenceManager;
  6. import javax.jdo.PersistenceManagerFactory;
  7. import javax.jdo.Query;
  8. /**
  9. * @author kjin@google.com (Kevin Jin)
  10. */
  11. final class JDOBookDataService implements BookDataService {
  12. private static final PersistenceManagerFactory pmf =
  13. JDOHelper.getPersistenceManagerFactory("transactional");
  14. private final PersistenceManager pm = pmf.getPersistenceManager();
  15. private static final String FROM_CLAUSE = "SELECT FROM " + Book.class.getName();
  16. @SuppressWarnings("unchecked")
  17. public Iterable<Book> asIterable(String jpqlQuery) {
  18. return (Iterable<Book>) pm.newQuery("javax.jdo.query.JPQL", FROM_CLAUSE + jpqlQuery).execute();
  19. }
  20. @SuppressWarnings("unchecked")
  21. public Iterable<Book> asIterable(String jpqlQuery, int limit, int offset) {
  22. Query query = pm.newQuery("javax.jdo.query.JPQL", FROM_CLAUSE + jpqlQuery);
  23. query.setRange(offset, offset + limit);
  24. return (Iterable<Book>) query.execute();
  25. }
  26. @SuppressWarnings("unchecked")
  27. public int countEntities(String jpqlQuery) {
  28. return ((Collection) asIterable(jpqlQuery)).size();
  29. }
  30. public void delete(Book book) {
  31. pm.deletePersistent(book);
  32. }
  33. public void put(Book book) {
  34. pm.makePersistent(book);
  35. }
  36. public void close() {
  37. pm.close();
  38. }
  39. }