com.google.appengine.api.datastore

## Class DataTypeUtils

- java.lang.Object
- - com.google.appengine.api.datastore.DataTypeUtils

-     public final class DataTypeUtils
      extends java.lang.Object

  `DataTypeUtils` presents a simpler interface that allows user-code to determine what Classes can safely be stored as properties in the data store.

  Currently this list includes:

  - `String` (but not `StringBuffer`),
  - All numeric primitive wrappers (`Byte` through `Long`, `Float` and `Double`, but not `BigInteger` or `BigDecimal`.
  - `Key`, for storing references to other `Entity` objects.
  - `User`, for storing references to users.
  - `ShortBlob`, for storing binary data small enough to be indexed. This means properties of this type, unlike `Blob` properties, can be filtered and sorted on in queries.
  - `Blob`, for storing unindexed binary data less than 1MB.
  - `Text`, for storing unindexed String data less than 1MB.
  - `BlobKey`, for storing references to user uploaded blobs (which may exceed 1MB).
  - `Date`.
  - `Link`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MAX_LINK_PROPERTY_LENGTH`
    `static int` | `MAX_SHORT_BLOB_PROPERTY_LENGTH` This is the maximum number of bytes that a `ShortBlob` property can contain.
    `static int` | `MAX_STRING_PROPERTY_LENGTH` This is the maximum number of bytes that a string property can contain.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `checkSupportedValue(java.lang.Object value)` If the specified object cannot be used as the value for a `Entity` property, throw an exception with the appropriate explanation.
    `static void` | `checkSupportedValue(java.lang.String name, java.lang.Object value)` If the specified object cannot be used as the value for a `Entity` property, throw an exception with the appropriate explanation.
    `static java.util.Set<java.lang.Class<?>>` | `getSupportedTypes()` Returns an unmodifiable `Set` of supported `Class` objects.
    `static boolean` | `isSupportedType(java.lang.Class<?> clazz)` Returns true if and only if the supplied `Class` can be stored in the data store.
    `static boolean` | `isUnindexableType(java.lang.Class<?> clazz)` Returns true if the supplied `Class` cannot be indexed.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### MAX_STRING_PROPERTY_LENGTH

          public static final int MAX_STRING_PROPERTY_LENGTH

      This is the maximum number of bytes that a string property can contain. If your string has more bytes, you need to wrap it in a `Text`.
      See Also:
        Constant Field Values

    - #### MAX_SHORT_BLOB_PROPERTY_LENGTH

          public static final int MAX_SHORT_BLOB_PROPERTY_LENGTH

      This is the maximum number of bytes that a `ShortBlob` property can contain. If your data is larger, you need to use a `Blob`.
      See Also:
        Constant Field Values

    - #### MAX_LINK_PROPERTY_LENGTH

          public static final int MAX_LINK_PROPERTY_LENGTH

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### checkSupportedValue

          public static void checkSupportedValue(java.lang.Object value)

      If the specified object cannot be used as the value for a `Entity` property, throw an exception with the appropriate explanation.
      Throws:
        `java.lang.NullPointerException` - if the specified value is null
        `java.lang.IllegalArgumentException` - if the type is not supported, or if the object is in some other way invalid.

    - #### checkSupportedValue

          public static void checkSupportedValue(java.lang.String name,
                                                 java.lang.Object value)

      If the specified object cannot be used as the value for a `Entity` property, throw an exception with the appropriate explanation.
      Throws:
        `java.lang.NullPointerException` - if the specified value is null
        `java.lang.IllegalArgumentException` - if the type is not supported, or if the object is in some other way invalid.

    - #### isSupportedType

          public static boolean isSupportedType(java.lang.Class<?> clazz)

      Returns true if and only if the supplied `Class` can be stored in the data store.

    - #### getSupportedTypes

          public static java.util.Set<java.lang.Class<?>> getSupportedTypes()

      Returns an unmodifiable `Set` of supported `Class` objects.

    - #### isUnindexableType

          public static boolean isUnindexableType(java.lang.Class<?> clazz)

      Returns true if the supplied `Class` cannot be indexed.