Search in sources :

Example 21 with Entity

use of com.google.appengine.api.datastore.Entity in project siena by mandubian.

the class GaePersistenceManagerAsync method insert.

public SienaFuture<Integer> insert(final Iterable<?> objects) {
    List<Entity> entities = new ArrayList<Entity>();
    for (Object obj : objects) {
        Class<?> clazz = obj.getClass();
        ClassInfo info = ClassInfo.getClassInfo(clazz);
        Field idField = info.getIdField();
        Entity entity = GaeMappingUtils.createEntityInstance(idField, info, obj);
        GaeMappingUtils.fillEntity(obj, entity);
        entities.add(entity);
    }
    Future<List<Key>> future = ds.put(entities);
    Future<Integer> wrapped = new SienaFutureWrapper<List<Key>, Integer>(future) {

        @Override
        protected Integer wrap(List<Key> generatedKeys) throws Exception {
            int i = 0;
            for (Object obj : objects) {
                Class<?> clazz = obj.getClass();
                ClassInfo info = ClassInfo.getClassInfo(clazz);
                Field idField = info.getIdField();
                GaeMappingUtils.setIdFromKey(idField, obj, generatedKeys.get(i++));
            }
            return generatedKeys.size();
        }
    };
    return new SienaFutureContainer<Integer>(wrapped);
}
Also used : SienaFutureWrapper(siena.core.async.SienaFutureWrapper) Entity(com.google.appengine.api.datastore.Entity) SienaFutureContainer(siena.core.async.SienaFutureContainer) ArrayList(java.util.ArrayList) Field(java.lang.reflect.Field) QueryResultList(com.google.appengine.api.datastore.QueryResultList) ArrayList(java.util.ArrayList) List(java.util.List) Key(com.google.appengine.api.datastore.Key) ClassInfo(siena.ClassInfo)

Example 22 with Entity

use of com.google.appengine.api.datastore.Entity in project siena by mandubian.

the class GaePersistenceManagerAsync method get.

public SienaFuture<Void> get(final Object obj) {
    final Key key = GaeMappingUtils.getKey(obj);
    Future<Entity> future = ds.get(key);
    Future<Void> wrapped = new SienaFutureWrapper<Entity, Void>(future) {

        @Override
        protected Void wrap(Entity entity) throws Exception {
            GaeMappingUtils.fillModel(obj, entity);
            return null;
        }
    };
    return new SienaFutureContainer<Void>(wrapped);
}
Also used : SienaFutureWrapper(siena.core.async.SienaFutureWrapper) Entity(com.google.appengine.api.datastore.Entity) SienaFutureContainer(siena.core.async.SienaFutureContainer) Key(com.google.appengine.api.datastore.Key)

Example 23 with Entity

use of com.google.appengine.api.datastore.Entity in project qi4j-sdk by Qi4j.

the class GaeEntityStoreMixin method get.

@Override
public Reader get(EntityReference ref) throws EntityStoreException {
    try {
        Key key = KeyFactory.createKey(entityKind, ref.toURI());
        Entity entity = datastore.get(key);
        Text serializedState = (Text) entity.getProperty("value");
        if (serializedState == null) {
            throw new EntityNotFoundException(ref);
        }
        return new StringReader(serializedState.getValue());
    } catch (com.google.appengine.api.datastore.EntityNotFoundException e) {
        e.printStackTrace();
        throw new EntityNotFoundException(ref);
    }
}
Also used : Entity(com.google.appengine.api.datastore.Entity) StringReader(java.io.StringReader) Text(com.google.appengine.api.datastore.Text) EntityNotFoundException(org.qi4j.spi.entitystore.EntityNotFoundException) Key(com.google.appengine.api.datastore.Key)

Example 24 with Entity

use of com.google.appengine.api.datastore.Entity in project siena by mandubian.

the class GaePersistenceManagerAsync method update.

public SienaFuture<Void> update(Object obj) {
    Entity entity = new Entity(GaeMappingUtils.getKey(obj));
    GaeMappingUtils.fillEntity(obj, entity);
    Future<Key> future = ds.put(entity);
    Future<Void> wrapped = new SienaFutureWrapper<Key, Void>(future) {

        @Override
        protected Void wrap(Key key) throws Exception {
            return null;
        }
    };
    return new SienaFutureContainer<Void>(wrapped);
}
Also used : SienaFutureWrapper(siena.core.async.SienaFutureWrapper) Entity(com.google.appengine.api.datastore.Entity) SienaFutureContainer(siena.core.async.SienaFutureContainer) Key(com.google.appengine.api.datastore.Key)

Example 25 with Entity

use of com.google.appengine.api.datastore.Entity in project iosched by google.

the class LogDataServlet method doGet.

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    resp.setContentType("application/json");
    UpdateRunLogger logger = new UpdateRunLogger();
    JsonObject response = new JsonObject();
    int limitElements = 10;
    if (req.getParameter("limit") != null) {
        limitElements = Integer.parseInt(req.getParameter("limit"));
    }
    List<Entity> lastRunsEntities = logger.getMostRecentRuns(limitElements);
    JsonArray lastRuns = new JsonArray();
    for (Entity run : lastRunsEntities) {
        JsonObject obj = new JsonObject();
        JsonObject timings = new JsonObject();
        TreeMap<String, Object> sortedMap = new TreeMap<String, Object>(run.getProperties());
        for (Entry<String, Object> property : sortedMap.entrySet()) {
            Object value = property.getValue();
            String key = property.getKey();
            if (key.startsWith("time_")) {
                timings.add(key.substring("time_".length()), new JsonPrimitive((Number) value));
            } else {
                JsonPrimitive converted = null;
                if (value instanceof ShortBlob) {
                    converted = new JsonPrimitive(bytesToHex(((ShortBlob) value).getBytes()));
                } else if (value instanceof String) {
                    converted = new JsonPrimitive((String) value);
                } else if (value instanceof Number) {
                    converted = new JsonPrimitive((Number) value);
                } else if (value instanceof Boolean) {
                    converted = new JsonPrimitive((Boolean) value);
                } else if (value instanceof Character) {
                    converted = new JsonPrimitive((Character) value);
                } else if (value instanceof Date) {
                    converted = new JsonPrimitive(DateFormat.getDateTimeInstance().format((Date) value));
                }
                if (converted != null) {
                    obj.add(key, converted);
                }
            }
        }
        obj.add("timings", timings);
        lastRuns.add(obj);
    }
    response.add("lastruns", lastRuns);
    CloudFileManager cloudManager = new CloudFileManager();
    response.add("bucket", new JsonPrimitive(cloudManager.getBucketName()));
    response.add("productionManifest", new JsonPrimitive(cloudManager.getProductionManifestURL()));
    response.add("stagingManifest", new JsonPrimitive(cloudManager.getStagingManifestURL()));
    new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create().toJson(response, resp.getWriter());
}
Also used : Entity(com.google.appengine.api.datastore.Entity) JsonPrimitive(com.google.gson.JsonPrimitive) GsonBuilder(com.google.gson.GsonBuilder) UpdateRunLogger(com.google.samples.apps.iosched.server.schedule.server.UpdateRunLogger) JsonObject(com.google.gson.JsonObject) TreeMap(java.util.TreeMap) Date(java.util.Date) JsonArray(com.google.gson.JsonArray) ShortBlob(com.google.appengine.api.datastore.ShortBlob) CloudFileManager(com.google.samples.apps.iosched.server.schedule.server.cloudstorage.CloudFileManager) JsonObject(com.google.gson.JsonObject)

Aggregations

Entity (com.google.appengine.api.datastore.Entity)50 Key (com.google.appengine.api.datastore.Key)34 ArrayList (java.util.ArrayList)25 Field (java.lang.reflect.Field)22 ClassInfo (siena.ClassInfo)17 SienaException (siena.SienaException)15 EntityNotFoundException (com.google.appengine.api.datastore.EntityNotFoundException)9 QueryResultList (com.google.appengine.api.datastore.QueryResultList)9 HashMap (java.util.HashMap)9 List (java.util.List)9 SienaFutureContainer (siena.core.async.SienaFutureContainer)9 SienaFutureWrapper (siena.core.async.SienaFutureWrapper)9 Map (java.util.Map)8 SienaRestrictedApiException (siena.SienaRestrictedApiException)6 DatastoreService (com.google.appengine.api.datastore.DatastoreService)5 IOException (java.io.IOException)5 Date (java.util.Date)4 Query (com.google.appengine.api.datastore.Query)3 ShortBlob (com.google.appengine.api.datastore.ShortBlob)3 NotImplementedException (org.apache.commons.lang.NotImplementedException)3