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
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      P load​(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 Detail

      • load

        P load​(com.google.cloud.datastore.Value<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.

        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:
        LoadEngine
      • 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 values
        path - 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