com.googlecode.objectify.impl.translate.RefTranslatorFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of objectify Show documentation
Show all versions of objectify Show documentation
The simplest convenient interface to the Google App Engine datastore
package com.googlecode.objectify.impl.translate;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.Ref;
import com.googlecode.objectify.annotation.Load;
import com.googlecode.objectify.impl.LoadConditions;
import com.googlecode.objectify.impl.Path;
/**
* Knows how to convert Ref objects to datastore-native Key objects and vice-versa.
*
* @author Jeff Schnitzer
*/
public class RefTranslatorFactory extends ValueTranslatorFactory, com.google.appengine.api.datastore.Key>
{
@SuppressWarnings({ "unchecked", "rawtypes" })
public RefTranslatorFactory() {
super((Class)Ref.class);
}
@Override
protected ValueTranslator, com.google.appengine.api.datastore.Key> createValueTranslator(TypeKey> tk, CreateContext ctx, Path path) {
final LoadConditions loadConditions = new LoadConditions(tk.getAnnotation(Load.class));
return new ValueTranslator, com.google.appengine.api.datastore.Key>(com.google.appengine.api.datastore.Key.class) {
@Override
protected Ref loadValue(com.google.appengine.api.datastore.Key value, LoadContext ctx, Path path) throws SkipException {
return ctx.loadRef(Key.create(value), loadConditions);
}
@Override
protected com.google.appengine.api.datastore.Key saveValue(Ref value, boolean index, SaveContext ctx, Path path) throws SkipException {
return ctx.saveRef(value, loadConditions);
}
};
}
}