   (:import [com.google.appengine.api.datastore DatastoreService DatastoreServiceFactory
             Key KeyFactory KeyRange
             Entity
+            FetchOptions$Builder
             Query Query$FilterOperator Query$SortDirection]))
 
 

         (save!-helper this# ~kind :parent parent#)))))


;;; Note that the code relies on the API's implicit transaction tracking, and
;;; the *current-transaction* value is not used. Making it available just in
;;; case.
(defmacro with-transaction [& body]
  `(binding [*current-transaction* (.beginTransaction (get-datastore-service))]
     (try

             (throw err#))))))


(defn- make-query-object [kind ancestor filter sort keys-only]
  (let [kind (cond (nil? kind) kind
                   (string? kind) kind
                   (extends? EntityProtocol kind) (unqualified-name kind)
