public interface Translator<P,D>
A translator knows how convert between POJO objects and the native datastore representation.
Translators are composed of other translators; through a chain of these a whole entity object is assembled or disassembled.
P is the pojo type. D is the datastore type.
Modifier and Type | Method and Description |
---|---|
P |
load(D node,
LoadContext ctx,
Path path)
Loads the content of the specified datastore node, returning the pojo equivalent.
|
D |
save(P pojo,
boolean index,
SaveContext ctx,
Path path)
Translates a pojo (or some component thereof) into a format suitable for storage in the datastore.
|
P load(D node, LoadContext ctx, Path path) throws SkipException
Loads the content of the specified datastore node, returning the pojo equivalent.
There is one special return value: If a Result> is returned, 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.
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 translatorSkipException
- if the return value should be abandoned.LoadEngine
D save(P pojo, boolean index, SaveContext ctx, Path path) throws SkipException
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).SkipException
- if the return value should be abandonedCopyright © 2014. All rights reserved.