package cms.model.meta;
import cms.model.model.TagEntity;
import com.google.appengine.api.datastore.AsyncDatastoreService;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import org.slim3.datastore.CoreAttributeMeta;
import org.slim3.datastore.ModelMeta;
import org.slim3.datastore.StringAttributeMeta;
import org.slim3.datastore.json.Default;
import org.slim3.datastore.json.JsonCoder;
import org.slim3.datastore.json.JsonReader;
import org.slim3.datastore.json.JsonRootReader;
import org.slim3.datastore.json.JsonWriter;
public class TagEntityMeta extends ModelMeta<TagEntity> {
public final CoreAttributeMeta<TagEntity, Key> key =
new CoreAttributeMeta<TagEntity, Key>(this, "__key__", "key", Key.class);
public final CoreAttributeMeta<TagEntity, Long> version =
new CoreAttributeMeta<TagEntity, Long>(this, "version", "version", Long.class);
public final StringAttributeMeta<TagEntity> name =
new StringAttributeMeta<TagEntity>(this, "name", "name");
private static final TagEntityMeta slim3_singleton = new TagEntityMeta();
/**
* @return the singleton
*/
public static TagEntityMeta get() {
return slim3_singleton;
}
/** */
public TagEntityMeta() {
super("TagEntity", TagEntity.class);
}
@Override
public TagEntity entityToModel(Entity entity) {
TagEntity model = new TagEntity();
model.setKey(entity.getKey());
model.setVersion((Long) entity.getProperty("version"));
model.setName((String) entity.getProperty("name"));
return model;
}
@Override
public Entity modelToEntity(Object model) {
TagEntity m = (TagEntity) model;
Entity entity = null;
if (m.getKey() != null) {
entity = new Entity(m.getKey());
} else {
entity = new Entity(kind);
}
entity.setProperty("version", m.getVersion());
entity.setProperty("name", m.getName());
entity.setProperty("slim3.schemaVersion", 1);
return entity;
}
@Override
protected Key getKey(Object model) {
TagEntity m = (TagEntity) model;
return m.getKey();
}
@Override
protected void setKey(Object model, Key key) {
validateKey(key);
TagEntity m = (TagEntity) model;
m.setKey(key);
}
@Override
protected long getVersion(Object model) {
TagEntity m = (TagEntity) model;
return m.getVersion() != null ? m.getVersion().longValue() : 0L;
}
@Override
protected void incrementVersion(Object model) {
TagEntity m = (TagEntity) model;
long ver = m.getVersion() != null ? m.getVersion().longValue() : 0L;
m.setVersion(Long.valueOf(ver + 1L));
}
@Override
protected void assignKeyToModelRefIfNecessary(AsyncDatastoreService ds, Object model) throws NullPointerException {
}
@Override
protected void prePut(Object model) {
}
@Override
protected void postGet(Object model) {
}
@Override
public String getSchemaVersionName() {
return "slim3.schemaVersion";
}
@Override
public String getClassHierarchyListName() {
return "slim3.classHierarchyList";
}
@Override
protected void modelToJson(JsonWriter writer, Object model, int maxDepth, int currentDepth) {
TagEntity m = (TagEntity) model;
writer.beginObject();
JsonCoder encoder = null;
if (m.getKey() != null) {
writer.setNextPropertyName("key");
encoder = new Default();
encoder.encode(writer, m.getKey());
}
if (m.getVersion() != null) {
writer.setNextPropertyName("version");
encoder = new Default();
encoder.encode(writer, m.getVersion());
}
writer.setNextPropertyName("name");
encoder = new Default();
encoder.encode(writer, m.getName());
writer.endObject();
}
@Override
protected TagEntity jsonToModel(JsonRootReader rootReader, int maxDepth, int currentDepth) {
TagEntity m = new TagEntity();
JsonReader reader = null;
JsonCoder decoder = null;
reader = rootReader.newObjectReader("key");
decoder = new Default();
m.setKey(decoder.decode(reader, m.getKey()));
reader = rootReader.newObjectReader("version");
decoder = new Default();
m.setVersion(decoder.decode(reader, m.getVersion()));
reader = rootReader.newObjectReader("name");
decoder = new Default();
m.setName(decoder.decode(reader, m.getName()));
return m;
}
}