Package com.parse

Class ParseObject

  • Direct Known Subclasses:
    ParseInstallation, ParseRole, ParseSession, ParseUser

    public class ParseObject
    extends java.lang.Object
    The ParseObject is a local representation of data that can be saved and retrieved from the Parse cloud.

    The basic workflow for creating new data is to construct a new ParseObject, use put(String, Object) to fill it with data, and then use saveInBackground() to persist to the cloud.

    The basic workflow for accessing existing data is to use a ParseQuery to specify which existing data to retrieve.

    • Constructor Summary

      Constructors 
      Constructor Description
      ParseObject​(java.lang.String theClassName)
      Constructs a new ParseObject with no data in it.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(java.lang.String key, java.lang.Object value)
      Atomically adds an object to the end of the array associated with a given key.
      void addAll​(java.lang.String key, java.util.Collection<?> values)
      Atomically adds the objects contained in a Collection to the end of the array associated with a given key.
      void addAllUnique​(java.lang.String key, java.util.Collection<?> values)
      Atomically adds the objects contained in a Collection to the array associated with a given key, only adding elements which are not already present in the array.
      void addUnique​(java.lang.String key, java.lang.Object value)
      Atomically adds an object to the array associated with a given key, only if it is not already present in the array.
      boolean containsKey​(java.lang.String key)
      Whether this object has a particular key.
      static <T extends ParseObject>
      T
      create​(java.lang.Class<T> subclass)
      Creates a new ParseObject based upon a subclass type.
      static ParseObject create​(java.lang.String className)
      Creates a new ParseObject based upon a class name.
      static <T extends ParseObject>
      T
      createWithoutData​(java.lang.Class<T> subclass, java.lang.String objectId)
      Creates a reference to an existing ParseObject for use in creating associations between ParseObjects.
      static ParseObject createWithoutData​(java.lang.String className, java.lang.String objectId)
      Creates a reference to an existing ParseObject for use in creating associations between ParseObjects.
      void delete()
      Deletes this object on the server.
      static <T extends ParseObject>
      void
      deleteAll​(java.util.List<T> objects)
      Deletes each object in the provided list.
      static <T extends ParseObject>
      <any>
      deleteAllInBackground​(java.util.List<T> objects)
      Deletes each object in the provided list.
      static <T extends ParseObject>
      void
      deleteAllInBackground​(java.util.List<T> objects, DeleteCallback callback)
      Deletes each object in the provided list.
      <any> deleteEventually()
      Deletes this object from the server at some unspecified time in the future, even if Parse is currently inaccessible.
      void deleteEventually​(DeleteCallback callback)
      Deletes this object from the server at some unspecified time in the future, even if Parse is currently inaccessible.
      <any> deleteInBackground()
      Deletes this object on the server in a background thread.
      void deleteInBackground​(DeleteCallback callback)
      Deletes this object on the server in a background thread.
      int describeContents()  
      <T extends ParseObject>
      T
      fetch()
      Fetches this object with the data from the server.
      static <T extends ParseObject>
      java.util.List<T>
      fetchAll​(java.util.List<T> objects)
      Fetches all the objects in the provided list.
      static <T extends ParseObject>
      java.util.List<T>
      fetchAllIfNeeded​(java.util.List<T> objects)
      Fetches all the objects that don't have data in the provided list.
      static <T extends ParseObject>
      <any>
      fetchAllIfNeededInBackground​(java.util.List<T> objects)
      Fetches all the objects that don't have data in the provided list in the background.
      static <T extends ParseObject>
      void
      fetchAllIfNeededInBackground​(java.util.List<T> objects, FindCallback<T> callback)
      Fetches all the objects that don't have data in the provided list in the background.
      static <T extends ParseObject>
      <any>
      fetchAllInBackground​(java.util.List<T> objects)
      Fetches all the objects in the provided list in the background.
      static <T extends ParseObject>
      void
      fetchAllInBackground​(java.util.List<T> objects, FindCallback<T> callback)
      Fetches all the objects in the provided list in the background.
      void fetchFromLocalDatastore()
      Loads data from the local datastore into this object, if it has not been fetched from the server already.
      <T extends ParseObject>
      void
      fetchFromLocalDatastoreInBackground​(GetCallback<T> callback)
      Loads data from the local datastore into this object, if it has not been fetched from the server already.
      <T extends ParseObject>
      T
      fetchIfNeeded()
      If this ParseObject has not been fetched (i.e.
      <T extends ParseObject>
      <any>
      fetchIfNeededInBackground()
      If this ParseObject has not been fetched (i.e.
      <T extends ParseObject>
      void
      fetchIfNeededInBackground​(GetCallback<T> callback)
      If this ParseObject has not been fetched (i.e.
      <T extends ParseObject>
      <any>
      fetchInBackground()
      Fetches this object with the data from the server in a background thread.
      <T extends ParseObject>
      void
      fetchInBackground​(GetCallback<T> callback)
      Fetches this object with the data from the server in a background thread.
      static <T extends ParseObject>
      T
      fromJSON​(JSONObject json, java.lang.String defaultClassName, ParseDecoder decoder)
      Creates a new ParseObject based on data from the Parse server.
      static <T extends ParseObject>
      T
      fromJSON​(JSONObject json, java.lang.String defaultClassName, ParseDecoder decoder, java.util.Set<java.lang.String> selectedKeys)
      Creates a new ParseObject based on data from the Parse server.
      java.lang.Object get​(java.lang.String key)
      Access a value.
      ParseACL getACL()
      Access the ParseACL governing this object.
      boolean getBoolean​(java.lang.String key)
      Access a boolean value.
      byte[] getBytes​(java.lang.String key)
      Access a byte[] value.
      java.lang.String getClassName()
      Accessor to the class name.
      java.util.Date getCreatedAt()
      This reports time as the server sees it, so that if you create a ParseObject, then wait a while, and then call save(), the creation time will be the time of the first save() call rather than the time the object was created locally.
      java.util.Date getDate​(java.lang.String key)
      Access a Date value.
      double getDouble​(java.lang.String key)
      Access a double value.
      int getInt​(java.lang.String key)
      Access an int value.
      JSONArray getJSONArray​(java.lang.String key)
      Access a JSONArray value.
      JSONObject getJSONObject​(java.lang.String key)
      Access a JSONObject value.
      <T> java.util.List<T> getList​(java.lang.String key)
      Access a List value.
      long getLong​(java.lang.String key)
      Access a long value.
      <V> java.util.Map<java.lang.String,​V> getMap​(java.lang.String key)
      Access a Map value
      java.lang.Number getNumber​(java.lang.String key)
      Access a Number value.
      java.lang.String getObjectId()
      Accessor to the object id.
      ParseFile getParseFile​(java.lang.String key)
      Access a ParseFile value.
      ParseGeoPoint getParseGeoPoint​(java.lang.String key)
      Access a ParseGeoPoint value.
      ParseObject getParseObject​(java.lang.String key)
      Access a ParseObject value.
      ParsePolygon getParsePolygon​(java.lang.String key)
      Access a ParsePolygon value.
      ParseUser getParseUser​(java.lang.String key)
      Access a ParseUser value.
      <T extends ParseObject>
      ParseRelation<T>
      getRelation​(java.lang.String key)
      Access or create a ParseRelation value for a key
      java.lang.String getString​(java.lang.String key)
      Access a String value.
      java.util.Date getUpdatedAt()
      This reports time as the server sees it, so that if you make changes to a ParseObject, then wait a while, and then call save(), the updated time will be the time of the save() call rather than the time the object was changed locally.
      boolean has​(java.lang.String key)
      Whether this object has a particular key.
      boolean hasSameId​(ParseObject other)  
      void increment​(java.lang.String key)
      Atomically increments the given key by 1.
      void increment​(java.lang.String key, java.lang.Number amount)
      Atomically increments the given key by the given number.
      boolean isDataAvailable()
      Gets whether the ParseObject has been fetched.
      boolean isDataAvailable​(java.lang.String key)
      Gets whether the ParseObject specified key has been fetched.
      boolean isDirty()
      Whether any key-value pair in this object (or its children) has been added/updated/removed and not saved yet.
      boolean isDirty​(java.lang.String key)
      Whether a value associated with a key has been added/updated/removed and not saved yet.
      java.util.Set<java.lang.String> keySet()
      Returns a set view of the keys contained in this object.
      void pin()
      Stores the object and every object it points to in the local datastore, recursively.
      void pin​(java.lang.String name)
      Stores the object and every object it points to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      pinAll​(java.lang.String name, java.util.List<T> objects)
      Stores the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      pinAll​(java.util.List<T> objects)
      Stores the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      <any>
      pinAllInBackground​(java.lang.String name, java.util.List<T> objects)
      Stores the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      pinAllInBackground​(java.lang.String name, java.util.List<T> objects, SaveCallback callback)
      Stores the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      <any>
      pinAllInBackground​(java.util.List<T> objects)
      Stores the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      pinAllInBackground​(java.util.List<T> objects, SaveCallback callback)
      Stores the objects and every object they point to in the local datastore, recursively.
      <any> pinInBackground()
      Stores the object and every object it points to in the local datastore, recursively.
      void pinInBackground​(SaveCallback callback)
      Stores the object and every object it points to in the local datastore, recursively.
      <any> pinInBackground​(java.lang.String name)
      Stores the object and every object it points to in the local datastore, recursively.
      void pinInBackground​(java.lang.String name, SaveCallback callback)
      Stores the object and every object it points to in the local datastore, recursively.
      void put​(java.lang.String key, java.lang.Object value)
      Add a key-value pair to this object.
      static void registerSubclass​(java.lang.Class<? extends ParseObject> subclass)
      Registers a custom subclass type with the Parse SDK, enabling strong-typing of those ParseObjects whenever they appear.
      void remove​(java.lang.String key)
      Removes a key from this object's data if it exists.
      void removeAll​(java.lang.String key, java.util.Collection<?> values)
      Atomically removes all instances of the objects contained in a Collection from the array associated with a given key.
      void revert()
      Clears any changes to this object made since the last call to save() or saveInBackground().
      void revert​(java.lang.String key)
      Clears changes to this object's key made since the last call to save() or saveInBackground().
      void save()
      Saves this object to the server.
      static <T extends ParseObject>
      void
      saveAll​(java.util.List<T> objects)
      Saves each object in the provided list.
      static <T extends ParseObject>
      <any>
      saveAllInBackground​(java.util.List<T> objects)
      Saves each object in the provided list to the server in a background thread.
      static <T extends ParseObject>
      void
      saveAllInBackground​(java.util.List<T> objects, SaveCallback callback)
      Saves each object in the provided list to the server in a background thread.
      <any> saveEventually()
      Saves this object to the server at some unspecified time in the future, even if Parse is currently inaccessible.
      void saveEventually​(SaveCallback callback)
      Saves this object to the server at some unspecified time in the future, even if Parse is currently inaccessible.
      <any> saveInBackground()
      Saves this object to the server in a background thread.
      void saveInBackground​(SaveCallback callback)
      Saves this object to the server in a background thread.
      void setACL​(ParseACL acl)
      Set the ParseACL governing this object.
      void setObjectId​(java.lang.String newObjectId)
      Setter for the object id.
      void unpin()
      Removes the object and every object it points to in the local datastore, recursively.
      void unpin​(java.lang.String name)
      Removes the object and every object it points to in the local datastore, recursively.
      static void unpinAll()
      Removes the objects and every object they point to in the local datastore, recursively.
      static void unpinAll​(java.lang.String name)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      unpinAll​(java.lang.String name, java.util.List<T> objects)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      unpinAll​(java.util.List<T> objects)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <any> unpinAllInBackground()
      Removes the objects and every object they point to in the local datastore, recursively.
      static void unpinAllInBackground​(DeleteCallback callback)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <any> unpinAllInBackground​(java.lang.String name)
      Removes the objects and every object they point to in the local datastore, recursively.
      static void unpinAllInBackground​(java.lang.String name, DeleteCallback callback)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      <any>
      unpinAllInBackground​(java.lang.String name, java.util.List<T> objects)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      unpinAllInBackground​(java.lang.String name, java.util.List<T> objects, DeleteCallback callback)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      <any>
      unpinAllInBackground​(java.util.List<T> objects)
      Removes the objects and every object they point to in the local datastore, recursively.
      static <T extends ParseObject>
      void
      unpinAllInBackground​(java.util.List<T> objects, DeleteCallback callback)
      Removes the objects and every object they point to in the local datastore, recursively.
      <any> unpinInBackground()
      Removes the object and every object it points to in the local datastore, recursively.
      void unpinInBackground​(DeleteCallback callback)
      Removes the object and every object it points to in the local datastore, recursively.
      <any> unpinInBackground​(java.lang.String name)
      Removes the object and every object it points to in the local datastore, recursively.
      void unpinInBackground​(java.lang.String name, DeleteCallback callback)
      Removes the object and every object it points to in the local datastore, recursively.
      void writeToParcel​(Parcel dest, int flags)  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ParseObject

        public ParseObject​(java.lang.String theClassName)
        Constructs a new ParseObject with no data in it. A ParseObject constructed in this way will not have an objectId and will not persist to the database until save() is called.

        Class names must be alphanumerical plus underscore, and start with a letter. It is recommended to name classes in PascalCaseLikeThis.

        Parameters:
        theClassName - The className for this ParseObject.
    • Method Detail

      • create

        public static ParseObject create​(java.lang.String className)
        Creates a new ParseObject based upon a class name. If the class name is a special type (e.g. for ParseUser), then the appropriate type of ParseObject is returned.
        Parameters:
        className - The class of object to create.
        Returns:
        A new ParseObject for the given class name.
      • create

        public static <T extends ParseObject> T create​(java.lang.Class<T> subclass)
        Creates a new ParseObject based upon a subclass type. Note that the object will be created based upon the ParseClassName of the given subclass type. For example, calling create(ParseUser.class) may create an instance of a custom subclass of ParseUser.
        Parameters:
        subclass - The class of object to create.
        Returns:
        A new ParseObject based upon the class name of the given subclass type.
      • createWithoutData

        public static ParseObject createWithoutData​(java.lang.String className,
                                                    java.lang.String objectId)
        Creates a reference to an existing ParseObject for use in creating associations between ParseObjects. Calling isDataAvailable() on this object will return false until fetchIfNeeded() or fetch() has been called. No network request will be made.
        Parameters:
        className - The object's class.
        objectId - The object id for the referenced object.
        Returns:
        A ParseObject without data.
      • createWithoutData

        public static <T extends ParseObject> T createWithoutData​(java.lang.Class<T> subclass,
                                                                  java.lang.String objectId)
        Creates a reference to an existing ParseObject for use in creating associations between ParseObjects. Calling isDataAvailable() on this object will return false until fetchIfNeeded() or fetch() has been called. No network request will be made.
        Parameters:
        subclass - The ParseObject subclass to create.
        objectId - The object id for the referenced object.
        Returns:
        A ParseObject without data.
      • registerSubclass

        public static void registerSubclass​(java.lang.Class<? extends ParseObject> subclass)
        Registers a custom subclass type with the Parse SDK, enabling strong-typing of those ParseObjects whenever they appear. Subclasses must specify the ParseClassName annotation and have a default constructor.
        Parameters:
        subclass - The subclass type to register.
      • fromJSON

        public static <T extends ParseObject> T fromJSON​(JSONObject json,
                                                         java.lang.String defaultClassName,
                                                         ParseDecoder decoder,
                                                         java.util.Set<java.lang.String> selectedKeys)
        Creates a new ParseObject based on data from the Parse server.
        Parameters:
        json - The object's data.
        defaultClassName - The className of the object, if none is in the JSON.
        decoder - Delegate for knowing how to decode the values in the JSON.
        selectedKeys - Set of keys selected when quering for this object. If none, the object is assumed to be complete, i.e. this is all the data for the object on the server.
      • fromJSON

        public static <T extends ParseObject> T fromJSON​(JSONObject json,
                                                         java.lang.String defaultClassName,
                                                         ParseDecoder decoder)
        Creates a new ParseObject based on data from the Parse server.
        Parameters:
        json - The object's data. It is assumed to be complete, unless the JSON has the KEY_SELECTED_KEYS key.
        defaultClassName - The className of the object, if none is in the JSON.
        decoder - Delegate for knowing how to decode the values in the JSON.
      • deleteAll

        public static <T extends ParseObject> void deleteAll​(java.util.List<T> objects)
                                                      throws ParseException
        Deletes each object in the provided list. This is faster than deleting each object individually because it batches the requests.
        Parameters:
        objects - The objects to delete.
        Throws:
        ParseException - Throws an exception if the server returns an error or is inaccessible.
      • deleteAllInBackground

        public static <T extends ParseObject> void deleteAllInBackground​(java.util.List<T> objects,
                                                                         DeleteCallback callback)
        Deletes each object in the provided list. This is faster than deleting each object individually because it batches the requests.
        Parameters:
        objects - The objects to delete.
        callback - The callback method to execute when completed.
      • deleteAllInBackground

        public static <T extends ParseObject> <any> deleteAllInBackground​(java.util.List<T> objects)
        Deletes each object in the provided list. This is faster than deleting each object individually because it batches the requests.
        Parameters:
        objects - The objects to delete.
        Returns:
        A Task that is resolved when deleteAll completes.
      • saveAll

        public static <T extends ParseObject> void saveAll​(java.util.List<T> objects)
                                                    throws ParseException
        Saves each object in the provided list. This is faster than saving each object individually because it batches the requests.
        Parameters:
        objects - The objects to save.
        Throws:
        ParseException - Throws an exception if the server returns an error or is inaccessible.
      • saveAllInBackground

        public static <T extends ParseObject> void saveAllInBackground​(java.util.List<T> objects,
                                                                       SaveCallback callback)
        Saves each object in the provided list to the server in a background thread. This is preferable to using saveAll, unless your code is already running from a background thread.
        Parameters:
        objects - The objects to save.
        callback - callback.done(e) is called when the save completes.
      • saveAllInBackground

        public static <T extends ParseObject> <any> saveAllInBackground​(java.util.List<T> objects)
        Saves each object in the provided list to the server in a background thread. This is preferable to using saveAll, unless your code is already running from a background thread.
        Parameters:
        objects - The objects to save.
        Returns:
        A Task that is resolved when saveAll completes.
      • fetchAllIfNeededInBackground

        public static <T extends ParseObject> <any> fetchAllIfNeededInBackground​(java.util.List<T> objects)
        Fetches all the objects that don't have data in the provided list in the background.
        Parameters:
        objects - The list of objects to fetch.
        Returns:
        A Task that is resolved when fetchAllIfNeeded completes.
      • fetchAllIfNeeded

        public static <T extends ParseObject> java.util.List<T> fetchAllIfNeeded​(java.util.List<T> objects)
                                                                          throws ParseException
        Fetches all the objects that don't have data in the provided list.
        Parameters:
        objects - The list of objects to fetch.
        Returns:
        The list passed in for convenience.
        Throws:
        ParseException - Throws an exception if the server returns an error or is inaccessible.
      • fetchAllIfNeededInBackground

        public static <T extends ParseObject> void fetchAllIfNeededInBackground​(java.util.List<T> objects,
                                                                                FindCallback<T> callback)
        Fetches all the objects that don't have data in the provided list in the background.
        Parameters:
        objects - The list of objects to fetch.
        callback - callback.done(result, e) is called when the fetch completes.
      • fetchAllInBackground

        public static <T extends ParseObject> <any> fetchAllInBackground​(java.util.List<T> objects)
        Fetches all the objects in the provided list in the background.
        Parameters:
        objects - The list of objects to fetch.
        Returns:
        A Task that is resolved when fetch completes.
      • fetchAll

        public static <T extends ParseObject> java.util.List<T> fetchAll​(java.util.List<T> objects)
                                                                  throws ParseException
        Fetches all the objects in the provided list.
        Parameters:
        objects - The list of objects to fetch.
        Returns:
        The list passed in.
        Throws:
        ParseException - Throws an exception if the server returns an error or is inaccessible.
      • fetchAllInBackground

        public static <T extends ParseObject> void fetchAllInBackground​(java.util.List<T> objects,
                                                                        FindCallback<T> callback)
        Fetches all the objects in the provided list in the background.
        Parameters:
        objects - The list of objects to fetch.
        callback - callback.done(result, e) is called when the fetch completes.
      • pinAllInBackground

        public static <T extends ParseObject> <any> pinAllInBackground​(java.lang.String name,
                                                                       java.util.List<T> objects)
        Stores the objects and every object they point to in the local datastore, recursively. If those other objects have not been fetched from Parse, they will not be stored. However, if they have changed data, all of the changes will be retained. To get the objects back later, you can use ParseQuery.fromLocalDatastore(), or you can create an unfetched pointer with createWithoutData(Class, String) and then call fetchFromLocalDatastore() on it.
        Parameters:
        name - the name
        objects - the objects to be pinned
        Returns:
        A Task that is resolved when pinning all completes.
        See Also:
        unpinAllInBackground(String, java.util.List)
      • unpinAllInBackground

        public static <T extends ParseObject> <any> unpinAllInBackground​(java.lang.String name,
                                                                         java.util.List<T> objects)
        Removes the objects and every object they point to in the local datastore, recursively.
        Parameters:
        name - the name
        objects - the objects
        Returns:
        A Task that is resolved when unpinning all completes.
        See Also:
        pinAllInBackground(String, java.util.List)
      • unpinAll

        public static <T extends ParseObject> void unpinAll​(java.lang.String name,
                                                            java.util.List<T> objects)
                                                     throws ParseException
        Removes the objects and every object they point to in the local datastore, recursively.
        Parameters:
        name - the name
        objects - the objects
        Throws:
        ParseException - exception if fails
        See Also:
        pinAll(String, java.util.List)
      • unpinAllInBackground

        public static <T extends ParseObject> <any> unpinAllInBackground​(java.util.List<T> objects)
        Removes the objects and every object they point to in the local datastore, recursively.
        Parameters:
        objects - the objects
        Returns:
        A Task that is resolved when unpinning all completes.
        See Also:
        pinAllInBackground(java.util.List), DEFAULT_PIN
      • unpinAllInBackground

        public static void unpinAllInBackground​(java.lang.String name,
                                                DeleteCallback callback)
        Removes the objects and every object they point to in the local datastore, recursively.
        Parameters:
        name - the name
        callback - the callback
        See Also:
        pinAll(String, java.util.List)
      • unpinAllInBackground

        public static <any> unpinAllInBackground​(java.lang.String name)
        Removes the objects and every object they point to in the local datastore, recursively.
        Parameters:
        name - the name
        Returns:
        A Task that is resolved when unpinning all completes.
        See Also:
        pinAll(String, java.util.List)
      • unpinAll

        public static void unpinAll​(java.lang.String name)
                             throws ParseException
        Removes the objects and every object they point to in the local datastore, recursively.
        Parameters:
        name - the name
        Throws:
        ParseException - exception if fails
        See Also:
        pinAll(String, java.util.List)
      • getClassName

        public java.lang.String getClassName()
        Accessor to the class name.
      • getUpdatedAt

        public java.util.Date getUpdatedAt()
        This reports time as the server sees it, so that if you make changes to a ParseObject, then wait a while, and then call save(), the updated time will be the time of the save() call rather than the time the object was changed locally.
        Returns:
        The last time this object was updated on the server.
      • getCreatedAt

        public java.util.Date getCreatedAt()
        This reports time as the server sees it, so that if you create a ParseObject, then wait a while, and then call save(), the creation time will be the time of the first save() call rather than the time the object was created locally.
        Returns:
        The first time this object was saved on the server.
      • keySet

        public java.util.Set<java.lang.String> keySet()
        Returns a set view of the keys contained in this object. This does not include createdAt, updatedAt, authData, or objectId. It does include things like username and ACL.

        Note that while the returned set is unmodifiable, it is in fact not thread-safe, and creating a copy is recommended before iterating over it.

      • revert

        public void revert​(java.lang.String key)
        Clears changes to this object's key made since the last call to save() or saveInBackground().
        Parameters:
        key - The key to revert changes for.
      • revert

        public void revert()
        Clears any changes to this object made since the last call to save() or saveInBackground().
      • isDirty

        public boolean isDirty()
        Whether any key-value pair in this object (or its children) has been added/updated/removed and not saved yet.
        Returns:
        Whether this object has been altered and not saved yet.
      • isDirty

        public boolean isDirty​(java.lang.String key)
        Whether a value associated with a key has been added/updated/removed and not saved yet.
        Parameters:
        key - The key to check for
        Returns:
        Whether this key has been altered and not saved yet.
      • getObjectId

        public java.lang.String getObjectId()
        Accessor to the object id. An object id is assigned as soon as an object is saved to the server. The combination of a className and an objectId uniquely identifies an object in your application.
        Returns:
        The object id.
      • setObjectId

        public void setObjectId​(java.lang.String newObjectId)
        Setter for the object id. In general you do not need to use this. However, in some cases this can be convenient. For example, if you are serializing a ParseObject yourself and wish to recreate it, you can use this to recreate the ParseObject exactly.
      • save

        public final void save()
                        throws ParseException
        Saves this object to the server. Typically, you should use saveInBackground() instead of this, unless you are managing your own threading.
        Throws:
        ParseException - Throws an exception if the server is inaccessible.
      • saveInBackground

        public final <any> saveInBackground()
        Saves this object to the server in a background thread. This is preferable to using save(), unless your code is already running from a background thread.
        Returns:
        A Task that is resolved when the save completes.
      • saveInBackground

        public final void saveInBackground​(SaveCallback callback)
        Saves this object to the server in a background thread. This is preferable to using save(), unless your code is already running from a background thread.
        Parameters:
        callback - callback.done(e) is called when the save completes.
      • saveEventually

        public final void saveEventually​(SaveCallback callback)
        Saves this object to the server at some unspecified time in the future, even if Parse is currently inaccessible. Use this when you may not have a solid network connection, and don't need to know when the save completes. If there is some problem with the object such that it can't be saved, it will be silently discarded. Objects saved with this method will be stored locally in an on-disk cache until they can be delivered to Parse. They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection is available. Objects saved this way will persist even after the app is closed, in which case they will be sent the next time the app is opened. If more than 10MB of data is waiting to be sent, subsequent calls to #saveEventually() or deleteEventually() will cause old saves to be silently discarded until the connection can be re-established, and the queued objects can be saved.
        Parameters:
        callback - - A callback which will be called if the save completes before the app exits.
      • saveEventually

        public final <any> saveEventually()
        Saves this object to the server at some unspecified time in the future, even if Parse is currently inaccessible. Use this when you may not have a solid network connection, and don't need to know when the save completes. If there is some problem with the object such that it can't be saved, it will be silently discarded. Objects saved with this method will be stored locally in an on-disk cache until they can be delivered to Parse. They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection is available. Objects saved this way will persist even after the app is closed, in which case they will be sent the next time the app is opened. If more than 10MB of data is waiting to be sent, subsequent calls to #saveEventually() or deleteEventually() will cause old saves to be silently discarded until the connection can be re-established, and the queued objects can be saved.
        Returns:
        A Task that is resolved when the save completes.
      • deleteEventually

        public final void deleteEventually​(DeleteCallback callback)
        Deletes this object from the server at some unspecified time in the future, even if Parse is currently inaccessible. Use this when you may not have a solid network connection, and don't need to know when the delete completes. If there is some problem with the object such that it can't be deleted, the request will be silently discarded. Delete requests made with this method will be stored locally in an on-disk cache until they can be transmitted to Parse. They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection is available. Delete instructions saved this way will persist even after the app is closed, in which case they will be sent the next time the app is opened. If more than 10MB of commands are waiting to be sent, subsequent calls to #deleteEventually() or saveEventually() will cause old instructions to be silently discarded until the connection can be re-established, and the queued objects can be saved.
        Parameters:
        callback - - A callback which will be called if the delete completes before the app exits.
      • deleteEventually

        public final <any> deleteEventually()
        Deletes this object from the server at some unspecified time in the future, even if Parse is currently inaccessible. Use this when you may not have a solid network connection, and don't need to know when the delete completes. If there is some problem with the object such that it can't be deleted, the request will be silently discarded. Delete requests made with this method will be stored locally in an on-disk cache until they can be transmitted to Parse. They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection is available. Delete instructions saved this way will persist even after the app is closed, in which case they will be sent the next time the app is opened. If more than 10MB of commands are waiting to be sent, subsequent calls to #deleteEventually() or saveEventually() will cause old instructions to be silently discarded until the connection can be re-established, and the queued objects can be saved.
        Returns:
        A Task that is resolved when the delete completes.
      • fetch

        public <T extends ParseObject> T fetch()
                                        throws ParseException
        Fetches this object with the data from the server. Call this whenever you want the state of the object to reflect exactly what is on the server.
        Returns:
        The ParseObject that was fetched.
        Throws:
        ParseException - Throws an exception if the server is inaccessible.
      • fetchInBackground

        public final <T extends ParseObject> <any> fetchInBackground()
        Fetches this object with the data from the server in a background thread. This is preferable to using fetch(), unless your code is already running from a background thread.
        Returns:
        A Task that is resolved when fetch completes.
      • fetchInBackground

        public final <T extends ParseObject> void fetchInBackground​(GetCallback<T> callback)
        Fetches this object with the data from the server in a background thread. This is preferable to using fetch(), unless your code is already running from a background thread.
        Parameters:
        callback - callback.done(object, e) is called when the fetch completes.
      • fetchIfNeededInBackground

        public final <T extends ParseObject> <any> fetchIfNeededInBackground()
        If this ParseObject has not been fetched (i.e. isDataAvailable() returns false), fetches this object with the data from the server in a background thread. This is preferable to using fetchIfNeeded(), unless your code is already running from a background thread.
        Returns:
        A Task that is resolved when fetch completes.
      • fetchIfNeeded

        public <T extends ParseObject> T fetchIfNeeded()
                                                throws ParseException
        If this ParseObject has not been fetched (i.e. isDataAvailable() returns false), fetches this object with the data from the server.
        Returns:
        The fetched ParseObject.
        Throws:
        ParseException - Throws an exception if the server is inaccessible.
      • fetchIfNeededInBackground

        public final <T extends ParseObject> void fetchIfNeededInBackground​(GetCallback<T> callback)
        If this ParseObject has not been fetched (i.e. isDataAvailable() returns false), fetches this object with the data from the server in a background thread. This is preferable to using fetchIfNeeded(), unless your code is already running from a background thread.
        Parameters:
        callback - callback.done(object, e) is called when the fetch completes.
      • deleteInBackground

        public final <any> deleteInBackground()
        Deletes this object on the server in a background thread. This is preferable to using delete(), unless your code is already running from a background thread.
        Returns:
        A Task that is resolved when delete completes.
      • delete

        public final void delete()
                          throws ParseException
        Deletes this object on the server. This does not delete or destroy the object locally.
        Throws:
        ParseException - Throws an error if the object does not exist or if the internet fails.
      • deleteInBackground

        public final void deleteInBackground​(DeleteCallback callback)
        Deletes this object on the server in a background thread. This is preferable to using delete(), unless your code is already running from a background thread.
        Parameters:
        callback - callback.done(e) is called when the save completes.
      • put

        public void put​(java.lang.String key,
                        java.lang.Object value)
        Add a key-value pair to this object. It is recommended to name keys in camelCaseLikeThis.
        Parameters:
        key - Keys must be alphanumerical plus underscore, and start with a letter.
        value - Values may be numerical, String, JSONObject, JSONArray, JSONObject#NULL, or other ParseObjects. value may not be null.
      • has

        public boolean has​(java.lang.String key)
        Whether this object has a particular key. Same as containsKey(String).
        Parameters:
        key - The key to check for
        Returns:
        Whether this object contains the key
      • increment

        public void increment​(java.lang.String key)
        Atomically increments the given key by 1.
        Parameters:
        key - The key to increment.
      • increment

        public void increment​(java.lang.String key,
                              java.lang.Number amount)
        Atomically increments the given key by the given number.
        Parameters:
        key - The key to increment.
        amount - The amount to increment by.
      • add

        public void add​(java.lang.String key,
                        java.lang.Object value)
        Atomically adds an object to the end of the array associated with a given key.
        Parameters:
        key - The key.
        value - The object to add.
      • addAll

        public void addAll​(java.lang.String key,
                           java.util.Collection<?> values)
        Atomically adds the objects contained in a Collection to the end of the array associated with a given key.
        Parameters:
        key - The key.
        values - The objects to add.
      • addUnique

        public void addUnique​(java.lang.String key,
                              java.lang.Object value)
        Atomically adds an object to the array associated with a given key, only if it is not already present in the array. The position of the insert is not guaranteed.
        Parameters:
        key - The key.
        value - The object to add.
      • addAllUnique

        public void addAllUnique​(java.lang.String key,
                                 java.util.Collection<?> values)
        Atomically adds the objects contained in a Collection to the array associated with a given key, only adding elements which are not already present in the array. The position of the insert is not guaranteed.
        Parameters:
        key - The key.
        values - The objects to add.
      • remove

        public void remove​(java.lang.String key)
        Removes a key from this object's data if it exists.
        Parameters:
        key - The key to remove.
      • removeAll

        public void removeAll​(java.lang.String key,
                              java.util.Collection<?> values)
        Atomically removes all instances of the objects contained in a Collection from the array associated with a given key. To maintain consistency with the Java Collection API, there is no method removing all instances of a single object. Instead, you can call parseObject.removeAll(key, Arrays.asList(value)).
        Parameters:
        key - The key.
        values - The objects to remove.
      • containsKey

        public boolean containsKey​(java.lang.String key)
        Whether this object has a particular key. Same as has(String).
        Parameters:
        key - The key to check for
        Returns:
        Whether this object contains the key
      • getString

        public java.lang.String getString​(java.lang.String key)
        Access a String value.
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key or if it is not a String.
      • getBytes

        public byte[] getBytes​(java.lang.String key)
        Access a byte[] value.
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key or if it is not a byte[].
      • getNumber

        public java.lang.Number getNumber​(java.lang.String key)
        Access a Number value.
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key or if it is not a Number.
      • getJSONArray

        public JSONArray getJSONArray​(java.lang.String key)
        Access a JSONArray value.
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key or if it is not a JSONArray.
      • getList

        public <T> java.util.List<T> getList​(java.lang.String key)
        Access a List value.
        Parameters:
        key - The key to access the value for
        Returns:
        null if there is no such key or if the value can't be converted to a List.
      • getMap

        public <V> java.util.Map<java.lang.String,​V> getMap​(java.lang.String key)
        Access a Map value
        Parameters:
        key - The key to access the value for
        Returns:
        null if there is no such key or if the value can't be converted to a Map.
      • getJSONObject

        public JSONObject getJSONObject​(java.lang.String key)
        Access a JSONObject value.
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key or if it is not a JSONObject.
      • getInt

        public int getInt​(java.lang.String key)
        Access an int value.
        Parameters:
        key - The key to access the value for.
        Returns:
        0 if there is no such key or if it is not a int.
      • getDouble

        public double getDouble​(java.lang.String key)
        Access a double value.
        Parameters:
        key - The key to access the value for.
        Returns:
        0 if there is no such key or if it is not a double.
      • getLong

        public long getLong​(java.lang.String key)
        Access a long value.
        Parameters:
        key - The key to access the value for.
        Returns:
        0 if there is no such key or if it is not a long.
      • getBoolean

        public boolean getBoolean​(java.lang.String key)
        Access a boolean value.
        Parameters:
        key - The key to access the value for.
        Returns:
        false if there is no such key or if it is not a boolean.
      • getDate

        public java.util.Date getDate​(java.lang.String key)
        Access a Date value.
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key or if it is not a Date.
      • getParseObject

        public ParseObject getParseObject​(java.lang.String key)
        Access a ParseObject value. This function will not perform a network request. Unless the ParseObject has been downloaded (e.g. by a ParseQuery.include(String) or by calling fetchIfNeeded() or fetch()), isDataAvailable() will return false.
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key or if it is not a ParseObject.
      • getParseGeoPoint

        public ParseGeoPoint getParseGeoPoint​(java.lang.String key)
        Access a ParseGeoPoint value.
        Parameters:
        key - The key to access the value for
        Returns:
        null if there is no such key or if it is not a ParseGeoPoint.
      • getParsePolygon

        public ParsePolygon getParsePolygon​(java.lang.String key)
        Access a ParsePolygon value.
        Parameters:
        key - The key to access the value for
        Returns:
        null if there is no such key or if it is not a ParsePolygon.
      • setACL

        public void setACL​(ParseACL acl)
        Set the ParseACL governing this object.
      • isDataAvailable

        public boolean isDataAvailable()
        Gets whether the ParseObject has been fetched.
        Returns:
        true if the ParseObject is new or has been fetched or refreshed. false otherwise.
      • isDataAvailable

        public boolean isDataAvailable​(java.lang.String key)
        Gets whether the ParseObject specified key has been fetched. This means the property can be accessed safely.
        Returns:
        true if the ParseObject key is new or has been fetched or refreshed. false otherwise.
      • getRelation

        public <T extends ParseObjectParseRelation<T> getRelation​(java.lang.String key)
        Access or create a ParseRelation value for a key
        Parameters:
        key - The key to access the relation for.
        Returns:
        the ParseRelation object if the relation already exists for the key or can be created for this key.
      • get

        public java.lang.Object get​(java.lang.String key)
        Access a value. In most cases it is more convenient to use a helper function such as getString(String) or getInt(String).
        Parameters:
        key - The key to access the value for.
        Returns:
        null if there is no such key.
      • hasSameId

        public boolean hasSameId​(ParseObject other)
      • fetchFromLocalDatastoreInBackground

        public <T extends ParseObject> void fetchFromLocalDatastoreInBackground​(GetCallback<T> callback)
        Loads data from the local datastore into this object, if it has not been fetched from the server already. If the object is not stored in the local datastore, this method with do nothing.
      • fetchFromLocalDatastore

        public void fetchFromLocalDatastore()
                                     throws ParseException
        Loads data from the local datastore into this object, if it has not been fetched from the server already. If the object is not stored in the local datastore, this method with throw a CACHE_MISS exception.
        Throws:
        ParseException - exception if fails
      • pinInBackground

        public <any> pinInBackground​(java.lang.String name)
        Stores the object and every object it points to in the local datastore, recursively. If those other objects have not been fetched from Parse, they will not be stored. However, if they have changed data, all of the changes will be retained. To get the objects back later, you can use ParseQuery.fromLocalDatastore(), or you can create an unfetched pointer with createWithoutData(Class, String) and then call fetchFromLocalDatastore() on it.
        Returns:
        A Task that is resolved when pinning completes.
        See Also:
        unpinInBackground(String)
      • pinInBackground

        public <any> pinInBackground()
        Stores the object and every object it points to in the local datastore, recursively. If those other objects have not been fetched from Parse, they will not be stored. However, if they have changed data, all of the changes will be retained. To get the objects back later, you can use ParseQuery.fromLocalDatastore(), or you can create an unfetched pointer with createWithoutData(Class, String) and then call fetchFromLocalDatastore() on it.
        Returns:
        A Task that is resolved when pinning completes.
        See Also:
        unpinInBackground(), DEFAULT_PIN
      • unpinInBackground

        public void unpinInBackground​(java.lang.String name,
                                      DeleteCallback callback)
        Removes the object and every object it points to in the local datastore, recursively.
        Parameters:
        callback - the callback
        See Also:
        pinInBackground(String, SaveCallback)
      • unpinInBackground

        public <any> unpinInBackground​(java.lang.String name)
        Removes the object and every object it points to in the local datastore, recursively.
        Returns:
        A Task that is resolved when unpinning completes.
        See Also:
        pinInBackground(String)
      • unpin

        public void unpin​(java.lang.String name)
                   throws ParseException
        Removes the object and every object it points to in the local datastore, recursively.
        Throws:
        ParseException
        See Also:
        pin(String)
      • unpinInBackground

        public <any> unpinInBackground()
        Removes the object and every object it points to in the local datastore, recursively.
        Returns:
        A Task that is resolved when unpinning completes.
        See Also:
        pinInBackground(), DEFAULT_PIN
      • describeContents

        public int describeContents()
      • writeToParcel

        public void writeToParcel​(Parcel dest,
                                  int flags)