@Override public T save(T entity) { Key<T> key = datastore.save(entity); return datastore.getByKey(persistentClass, key); }
@Override public T update(T entity) { Key<T> key = datastore.merge(entity); return datastore.getByKey(persistentClass, key); }
public Task findOne(ObjectId id, QueryParams requestParams) { return datastore.getByKey(Task.class, new Key<>(Task.class, id)); }
public Project findOne(ObjectId id, QueryParams requestParams) { return datastore.getByKey(Project.class, new Key<>(Project.class, id)); }
public <S extends Project> S save(S entity) { Key<Project> saveKey = (Key<Project>) datastore.save(entity); return (S) datastore.getByKey(Project.class, saveKey); }
public <S extends Task> S save(S entity) { Key<Task> saveKey = (Key<Task>) datastore.save(entity); return (S) datastore.getByKey(Task.class, saveKey); }
protected abstract Object fetch();
@Override @SuppressWarnings("unchecked") protected Object fetch() { final Object entity = getDatastore().getByKey(referenceObjClass, key); if (entity == null && !ignoreMissing) { throw new LazyReferenceFetchingException(format("During the lifetime of the proxy, the Entity identified by '%s' " + "disappeared from the Datastore.", key)); } return entity; } }
@Override @SuppressWarnings("unchecked") protected synchronized Object fetch() { final Collection<T> c = (Collection<T>) object; c.clear(); final int numberOfEntitiesExpected = listOfKeys.size(); // does not retain order: // List<T> retrievedEntities = p.get().getByKeys(referenceObjClass, // (List) __getKeysAsList()); // so we do it the lousy way: FIXME final List<T> retrievedEntities = new ArrayList<T>(listOfKeys.size()); for (final Key<?> k : listOfKeys) { T entity = (T) getDatastore().getByKey(referenceObjClass, k); if (entity != null) { retrievedEntities.add(entity); } } if (!ignoreMissing && (numberOfEntitiesExpected != retrievedEntities.size())) { throw new LazyReferenceFetchingException(format("During the lifetime of a proxy of type '%s', some referenced Entities" + " of type '%s' have disappeared from the Datastore.", c.getClass().getSimpleName(), referenceObjClass.getSimpleName())); } c.addAll(retrievedEntities); return c; }