All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.objectify.impl.translate.RefTranslatorFactory Maven / Gradle / Ivy

There is a newer version: 6.1.2
Show newest version
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);
			}
		};
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy