Class ClassPopulator<P>
- java.lang.Object
-
- com.googlecode.objectify.impl.translate.ClassPopulator<P>
-
- All Implemented Interfaces:
Populator<P>
public class ClassPopulator<P> extends Object implements Populator<P>
Used by translators to populate properties between POJO and PropertiesContainer. Unlike translators, this does not create the POJO or container, it just copies translated properties between them.
Always excludes the key fields, @Id and @Parent.
- Author:
- Jeff Schnitzer
-
-
Constructor Summary
Constructors Constructor Description ClassPopulator(Class<P> clazz, CreateContext ctx, Path path)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
load(com.google.appengine.api.datastore.PropertyContainer node, LoadContext ctx, Path path, P into)
Loads the content of the specified datastore node, returning the pojo equivalent.void
save(P pojo, boolean index, SaveContext ctx, Path path, com.google.appengine.api.datastore.PropertyContainer into)
Translates a pojo (or some component thereof) into a format suitable for storage in the datastore.
-
-
-
Constructor Detail
-
ClassPopulator
public ClassPopulator(Class<P> clazz, CreateContext ctx, Path path)
-
-
Method Detail
-
load
public void load(com.google.appengine.api.datastore.PropertyContainer node, LoadContext ctx, Path path, P into)
Description copied from interface:Populator
Loads the content of the specified datastore node, returning the pojo equivalent.
There is one special value for loading: If a Result> is returned from a translator, the content of the Result will be used instead, but delayed until ctx.done() is called. This happens at the end of a "round" of load operations and is the magic trick that makes populating entity references work efficiently.
- Specified by:
load
in interfacePopulator<P>
- Parameters:
node
- is the part of the native datastore entity tree we are transforming.ctx
- holds state information during an entity load.path
- is the current path to this translatorinto
- is an optional parameter; sometimes we need to create an object at a higher level and pass it down through a stack of translators. Most translators will ignore this, but some will have special behavior, for example, this allows collections to be recycled.
-
save
public void save(P pojo, boolean index, SaveContext ctx, Path path, com.google.appengine.api.datastore.PropertyContainer into)
Description copied from interface:Populator
Translates a pojo (or some component thereof) into a format suitable for storage in the datastore.- Specified by:
save
in interfacePopulator<P>
- Parameters:
pojo
- is an object from the pojo entity graph; possibly the whole graph or possibly just a leaf field.index
- is whether the instruction so far is to index or not index property valuespath
- is the path that we have taken to get here, which could be long due to re-entrant translators (ie, an embedded pojo that also has a reference to the same class).
-
-