Source: synchronization/endpoint/mobile-object.js

/**
 * Copyright© 2016, Oracle and/or its affiliates. All rights reserved.
 */


/**
 * Class that represents an object returned by a custom code API.
 * @constructor
 * @global
 */
function MobileObject(endpoint, uri) {

  MobileResource.call(this, endpoint, uri);

  // TODO: check if we need the property
  this._type = SyncResourceType.item;
}

MobileObject.prototype = Object.create(MobileResource.prototype);
MobileObject.prototype.constructor = MobileObject;

/**
 * Saves any changes to the object back to the service.
 * @param saveIfOffline {Boolean} If true will cache updates locally and sync them back to the service if the device is offline; if false will fail if the device is offline.
 * @return {Promise.<MobileObject|NetworkResponse>}
 */
// TODO: review this method, the method should be private
// TODO: This method is misleading, this method shows that the mobile object can exists without collection.
// TODO: We should move the functionality to collection object, to method add
MobileObject.prototype.save = function(saveIfOffline) {
  return this._getEndpoint()._save(this, saveIfOffline);
};

/**
 * Saves any changes to the object back to the service.
 * @param deleteIfOffline {Boolean} If true will cache the delete locally and sync back to the service if the device is offline; if false will fail if the device is offline.
 * @return {Promise.<Undefined|NetworkResponse>}
 */
// TODO: review this method, the method should be private
// TODO: This method is misleading, this method shows that the mobile object can exists without collection. Better approach is provide collection functionality to add objects to server.
// TODO: We should move the functionality to collection object, to method remove
MobileObject.prototype.delete = function(deleteIfOffline) {
  return this._getEndpoint()._delete(this, deleteIfOffline);
};