DataTypeTranslator (Google App Engine API for Java)

com.google.appengine.api.datastore

Class DataTypeTranslator

  • java.lang.Object
    • com.google.appengine.api.datastore.DataTypeTranslator


  • public final class DataTypeTranslator
    extends java.lang.Object
    DataTypeTranslator is a utility class for converting between the data store's Property protocol buffers and the user-facing classes (String, User, etc.).
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method and Description
      static void addPropertiesToPb(java.util.Map<java.lang.String,java.lang.Object> map, EntityProto proto)
      Add all of the properties in the specified map to an EntityProto.
      static void extractImplicitPropertiesFromPb(EntityProto proto, java.util.Map<java.lang.String,java.lang.Object> map)
      Copy all of the implicit properties present on proto into map.
      static void extractIndexedPropertiesFromPb(EntityProto proto, java.util.Map<java.lang.String,java.lang.Object> map)
      Copy all of the indexed properties present on proto into map.
      static void extractPropertiesFromPb(EntityProto proto, java.util.Map<java.lang.String,java.lang.Object> map)
      Copy all of the properties present on proto into map.
      static java.util.Collection<Property> findIndexedPropertiesOnPb(EntityProto proto, java.lang.String propertyName)
      Locates and returns all indexed properties with the given name on the given proto.
      static java.lang.Comparable<java.lang.Object> getComparablePropertyValue(Property property)
      Returns the value for the property as its comparable representation type.
      static java.lang.Object getPropertyValue(Property property)
      Returns the value for the property as its canonical type.
      static int getTypeRank(java.lang.Class<? extends java.lang.Comparable> datastoreType)
      Get the rank of the given datastore type relative to other datastore types.
      static Entity toEntityFromSerializedV1Proto(byte[] serializedV1Entity)
      Deserializes a Cloud Datastore V1 Entity protobuf and converts it to an App Engine Datastore Entity.
      static byte[] toSerializedV1Proto(Entity entity)
      Converts an App Engine Datastore Entity to a Cloud Datastore Entity V1 protobuf and serializes it.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • addPropertiesToPb

        public static void addPropertiesToPb(java.util.Map<java.lang.String,java.lang.Object> map,
                                             EntityProto proto)
        Add all of the properties in the specified map to an EntityProto. This involves determining the type of each property and creating the proper type-specific protocol buffer.

        If the property value is an Entity.UnindexedValue, or if it's a type that is never indexed, e.g. Text and Blob, it's added to EntityProto.raw_property. Otherwise it's added to EntityProto.property.

        Parameters:
        map - A not null map of all the properties which will be set on proto
        proto - A not null protocol buffer
      • extractIndexedPropertiesFromPb

        public static void extractIndexedPropertiesFromPb(EntityProto proto,
                                                          java.util.Map<java.lang.String,java.lang.Object> map)
        Copy all of the indexed properties present on proto into map.
      • extractPropertiesFromPb

        public static void extractPropertiesFromPb(EntityProto proto,
                                                   java.util.Map<java.lang.String,java.lang.Object> map)
        Copy all of the properties present on proto into map.
      • extractImplicitPropertiesFromPb

        public static void extractImplicitPropertiesFromPb(EntityProto proto,
                                                           java.util.Map<java.lang.String,java.lang.Object> map)
        Copy all of the implicit properties present on proto into map.
      • findIndexedPropertiesOnPb

        public static java.util.Collection<Property> findIndexedPropertiesOnPb(EntityProto proto,
                                                                               java.lang.String propertyName)
        Locates and returns all indexed properties with the given name on the given proto. If there are a mix of matching multiple and non-multiple properties, the collection will contain the first non-multiple property.
        Returns:
        A list, potentially empty, containing matching properties.
      • getPropertyValue

        public static java.lang.Object getPropertyValue(Property property)
        Returns the value for the property as its canonical type.
        Parameters:
        property - a not null property
        Returns:
        null if no value was set for property
      • toEntityFromSerializedV1Proto

        public static Entity toEntityFromSerializedV1Proto(byte[] serializedV1Entity)
        Deserializes a Cloud Datastore V1 Entity protobuf and converts it to an App Engine Datastore Entity. serializedV1Entity should be an output of toSerializedV1Proto(com.google.appengine.api.datastore.Entity); no guarantees for other inputs.
        Throws:
        java.lang.IllegalArgumentException - if the argument could not be deserialized
      • toSerializedV1Proto

        public static byte[] toSerializedV1Proto(Entity entity)
        Converts an App Engine Datastore Entity to a Cloud Datastore Entity V1 protobuf and serializes it.

        Note that the conversion may be lossy or fail; for example, the Cloud Datastore V1 API supports only UTF-8 strings, so App Engine Datastore entities with string properties that are not UTF-8 encoded may behave in unexpected ways if supplied to Cloud Datastore. You can verify that the conversion was successful for entity x by checking x.equals(toEntityFromSerializedV1Proto(toSerializedV1Proto(x)).

      • getComparablePropertyValue

        public static java.lang.Comparable<java.lang.Object> getComparablePropertyValue(Property property)
        Returns the value for the property as its comparable representation type.
        Parameters:
        property - a not null property
        Returns:
        null if no value was set for property
      • getTypeRank

        public static int getTypeRank(java.lang.Class<? extends java.lang.Comparable> datastoreType)
        Get the rank of the given datastore type relative to other datastore types. Note that datastore types do not necessarily have unique ranks.