# DataTypeUtils
Date: 2012-02-24

## 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
`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 characters that a string property can contain.

Method Summary
`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.

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 characters that a string property can contain. If your string has more characters, 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.