Package com.ikai.photosharing.server

Source Code of com.ikai.photosharing.server.TagDao

package com.ikai.photosharing.server;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.FetchOptions;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;
import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.Query.FilterOperator;
import com.ikai.photosharing.shared.Tag;
import com.ikai.photosharing.shared.UploadedImage;

public class TagDao {

  DatastoreService datastore;
 
  public TagDao() {
    datastore = DatastoreServiceFactory.getDatastoreService();
  }
 
 
  /**
   * @param tag The Tag object we want persisted
   * @return a String encoded Key for the saved object
   */
  public String put(Tag tag) {
    Entity tagEntity = new Entity(Tag.class.getSimpleName());
   
    // TODO: Make this part of an Entity Group with UploadedImage as a parent
    tagEntity.setProperty("createdAt", tag.getCreatedAt());
    tagEntity.setProperty("taggerId", tag.getTaggerId());
    tagEntity.setProperty("photoKey", tag.getPhotoKey());
   
    tagEntity.setUnindexedProperty("body", tag.getBody());
    tagEntity.setUnindexedProperty("x", tag.getX());
    tagEntity.setUnindexedProperty("y", tag.getY());
   
    Key key = datastore.put(tagEntity);
    String encodedKey = KeyFactory.keyToString(key);
    return encodedKey;
  }
 
  public List<Tag> getForImage(UploadedImage image) {
    Query query = new Query(Tag.class.getSimpleName());
    query.addFilter("photoKey", FilterOperator.EQUAL, image.getKey());
   
    List<Tag> results = new ArrayList<Tag>();
   
    for(Entity entity : datastore.prepare(query).asIterable(FetchOptions.Builder.withDefaults())) {
      Tag tag = new Tag();
      tag.setPhotoKey((String) entity.getProperty("photoKey"));
      tag.setBody((String) entity.getProperty("body"));
      tag.setCreatedAt((Date) entity.getProperty("createdAt"));
      tag.setTaggerId((String) entity.getProperty("taggerId"));
      tag.setX((Long) entity.getProperty("x"));
      tag.setY((Long) entity.getProperty("y"));
      results.add(tag);
    }
   
    return results;
  }
 
}
TOP

Related Classes of com.ikai.photosharing.server.TagDao

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.