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.).| Modifier and Type | Class and Description |
|---|---|
static class |
DataTypeTranslator.ComparableByteArray
A wrapper for a
byte[] that implements Comparable. |
| 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. |
public static void addPropertiesToPb(java.util.Map<java.lang.String,java.lang.Object> map,
EntityProto proto)
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.
map - A not null map of all the properties which will be set on protoproto - A not null protocol bufferpublic static void extractIndexedPropertiesFromPb(EntityProto proto,
java.util.Map<java.lang.String,java.lang.Object> map)
proto into map.public static void extractPropertiesFromPb(EntityProto proto,
java.util.Map<java.lang.String,java.lang.Object> map)
proto into map.public static void extractImplicitPropertiesFromPb(EntityProto proto,
java.util.Map<java.lang.String,java.lang.Object> map)
proto into map.public static java.util.Collection<Property> findIndexedPropertiesOnPb(EntityProto proto,
java.lang.String propertyName)
public static java.lang.Object getPropertyValue(Property property)
property - a not null propertynull if no value was set for propertypublic static Entity toEntityFromSerializedV1Proto(byte[] serializedV1Entity)
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.java.lang.IllegalArgumentException - if the argument could not be deserializedpublic static byte[] toSerializedV1Proto(Entity entity)
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)).
public static java.lang.Comparable<java.lang.Object> getComparablePropertyValue(Property property)
property - a not null propertynull if no value was set for propertypublic static int getTypeRank(java.lang.Class<? extends java.lang.Comparable> datastoreType)