Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.google.appengine.api.datastore
Class PropertyContainer

    java.lang.Object
      com.google.appengine.api.datastore.PropertyContainer

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable

Direct Known Subclasses:
  EmbeddedEntity, Entity

    public abstract class PropertyContainer

extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

A mutable property container.

See Also:
  Serialized Form

Method Summary
`java.util.Map<java.lang.String,java.lang.Object>` | `getProperties()` Gets all of the properties belonging to this container.
`java.lang.Object` | `getProperty(java.lang.String propertyName)` Gets the property with the specified name.
`boolean` | `hasProperty(java.lang.String propertyName)` Returns true if a property has been set.
`boolean` | `isUnindexedProperty(java.lang.String propertyName)` Returns true if `propertyName` has a value that will not be indexed.
`void` | `removeProperty(java.lang.String propertyName)` Removes any property with the specified name.
`void` | `setPropertiesFrom(PropertyContainer src)` A convenience method that populates properties from those in the given container.
`void` | `setProperty(java.lang.String propertyName, java.lang.Object value)` Sets the property named, `propertyName`, to `value`.
`void` | `setUnindexedProperty(java.lang.String propertyName, java.lang.Object value)` Like `#setProperty`, but doesn't index the property in the built-in single property indexes.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### getProperty

    public java.lang.Object getProperty(java.lang.String propertyName)

  Gets the property with the specified name. The value returned may not be the same type as originally set via `setProperty(java.lang.String, java.lang.Object)`.

  Returns:
    the property corresponding to `propertyName`.

### getProperties

    public java.util.Map<java.lang.String,java.lang.Object> getProperties()

  Gets all of the properties belonging to this container.

  Returns:
    an unmodifiable `Map` of properties.

### hasProperty

    public boolean hasProperty(java.lang.String propertyName)

  Returns true if a property has been set. This function can be used to test if a property has been specifically set to `null`.

  Returns:
    true iff the property named `propertyName` exists.

### removeProperty

    public void removeProperty(java.lang.String propertyName)

  Removes any property with the specified name. If there is no property with this name set, simply does nothing.

  Throws:
    `java.lang.NullPointerException` - If `propertyName` is null.

### setProperty

    public void setProperty(java.lang.String propertyName,
                            java.lang.Object value)

  Sets the property named, `propertyName`, to `value`.

  As the value is stored in the datastore, it is converted to the datastore's native type. This may include widening, such as converting a `Short` to a `Long`.

  If value is a `Collection`, the values will be stored in the datastore with the collection's iteration order with one caveat: all indexed values will come before all unindexed values (this can occur if the `Collection` contains both values that are normally indexed like strings, and values that are never indexed like `Blob`, `Text` and `EmbeddedEntity`).

  Overrides any existing value for this property, whether indexed or unindexed.

  Note that `Blob`, `Text` and `EmbeddedEntity` property values are never indexed by the built-in single property indexes. To store other types without being indexed, use `setUnindexedProperty(java.lang.String, java.lang.Object)`.

  Parameters:
    `value` - may be one of the supported datatypes or a heterogeneous `Collection` of one of the supported datatypes.
  Throws:
    `java.lang.IllegalArgumentException` - If the value is not of a type that the data store supports.
  See Also:
    `setUnindexedProperty(java.lang.String, java.lang.Object)`

### setUnindexedProperty

    public void setUnindexedProperty(java.lang.String propertyName,
                                     java.lang.Object value)

  Like `#setProperty`, but doesn't index the property in the built-in single property indexes.

  Parameters:
    `value` - may be one of the supported datatypes, or a heterogeneous `Collection` of one of the supported datatypes.

    Overrides any existing value for this property, whether indexed or unindexed.

  Throws:
    `java.lang.IllegalArgumentException` - If the value is not of a type that the data store supports.
  See Also:
    `setProperty(java.lang.String, java.lang.Object)`

### isUnindexedProperty

    public boolean isUnindexedProperty(java.lang.String propertyName)

  Returns true if `propertyName` has a value that will not be indexed. This includes `Text`, `Blob`, and any property added using `setUnindexedProperty(java.lang.String, java.lang.Object)`.

### setPropertiesFrom

    public void setPropertiesFrom(PropertyContainer src)

  A convenience method that populates properties from those in the given container.

  This method transfers information about unindexed properties and clones any mutable values.

  Parameters:
    `src` - The container from which we will populate ourself.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD