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 proto
proto
- 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 property
public 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 property
public static int getTypeRank(java.lang.Class<? extends java.lang.Comparable> datastoreType)