Interface Translator<P,D>
- All Known Implementing Classes:
ClassTranslator,EntityTranslator,NullSafeTranslator,TranslatorRecycles,ValueTranslator
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 Value type.
- Author:
- Jeff Schnitzer invalid input: '<'[email protected]>
-
Method Summary
Modifier and TypeMethodDescriptionload(com.google.cloud.datastore.Value<D> node, LoadContext ctx, Path path) Loads the content of the specified datastore node, returning the pojo equivalent.com.google.cloud.datastore.Value<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.
-
Method Details
-
load
Loads the content of the specified datastore node, returning the pojo equivalent.
There is one special return value: If a Resultinvalid input: '<'?> 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.
- 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 translator- Returns:
- an assembled pojo corresponding to the node subtree; if null is returned, that is the real value!
- Throws:
SkipException- if the return value should be abandoned.- See Also:
-
save
com.google.cloud.datastore.Value<D> save(P pojo, boolean index, SaveContext ctx, Path path) throws SkipException Translates a pojo (or some component thereof) into a format suitable for storage in the datastore.- 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).- Returns:
- something suitable for storage in the datastore.
- Throws:
SkipException- if the return value should be abandoned
-