function _GroupLock(sGroupId, oOwner, bLocked, bModifying, iSerialNumber, fnCancel) {
		if (!oOwner) {
			throw new Error("Missing owner");
		}
		if (bModifying && !bLocked) {
			throw new Error("A modifying group lock has to be locked");
		}
		this.fnCancel = fnCancel;
		this.bCanceled = false;
		this.sGroupId = sGroupId;
		this.bLocked = !!bLocked; // whether it is locked; explicitly unlocked if undefined
		this.bModifying = !!bModifying; // whether this lock belongs to a modifying request
		this.oOwner = oOwner;
		this.oPromise = null; // the promise resolving when the lock is unlocked
		this.iSerialNumber = iSerialNumber === undefined ? Infinity : iSerialNumber;
	}
/**
	 * Constructs a potential lock for the given group ID. A group lock may be created locked or
	 * unlocked. If locked, its {@link #waitFor} returns a promise that is resolved when the lock is
	 * unlocked.
	 *
	 * @param {string} sGroupId
	 *   The group ID
	 * @param {object} oOwner
	 *   The lock's owner for debugging
	 * @param {boolean} [bLocked]
	 *   Whether the lock is locked
	 * @param {boolean} [bModifying]
	 *   Whether the reason for the group lock is a modifying request
	 * @param {number} [iSerialNumber=Infinity]
	 *   A serial number which may be used on unlock
	 * @param {function} [fnCancel]
	 *   Function that is called when the group lock is canceled
	 * @throws {Error}
	 *   If <code>oOwner</code> is missing, or if <code>bModifying</code> is set but
	 *   <code>bLocked</code> is unset
	 *
	 * @alias sap.ui.model.odata.v4.lib._GroupLock
	 * @constructor
	 * @private
	 */
Constructs a potential lock for the given group ID. A group lock may be created locked or
unlocked. If locked, its  #waitFor returns a promise that is resolved when the lock is
unlocked.




Constructs a potential lock for the given group ID . A group lock may be created locked or unlocked . If locked its #waitFor returns a promise that is resolved when the lock is unlocked .
function _GroupLock(sGroupId, oOwner, bLocked, bModifying, iSerialNumber, fnCancel) {
		if (!oOwner) {
			throw new Error("Missing owner");
		}
		if (bModifying && !bLocked) {
			throw new Error("A modifying group lock has to be locked");
		}
		this.fnCancel = fnCancel;
		this.bCanceled = false;
		this.sGroupId = sGroupId;
		this.bLocked = !!bLocked; 
		this.bModifying = !!bModifying; 
		this.oOwner = oOwner;
		this.oPromise = null; 
		this.iSerialNumber = iSerialNumber === undefined ? Infinity : iSerialNumber;
	}
function _GroupLock ( sGroupId , oOwner , bLocked , bModifying , iSerialNumber , fnCancel ) { if ( ! oOwner ) { throw new Error ( "Missing owner" ) ; } if ( bModifying && ! bLocked ) { throw new Error ( "A modifying group lock has to be locked" ) ; } this . fnCancel = fnCancel ; this . bCanceled = false ; this . sGroupId = sGroupId ; this . bLocked = ! ! bLocked ; this . bModifying = ! ! bModifying ; this . oOwner = oOwner ; this . oPromise = null ; this . iSerialNumber = iSerialNumber === undefined ? Infinity : iSerialNumber ; }
Constructs a potential lock for the given group ID.
Constructs a potential lock for the given group ID .
// whether it is locked; explicitly unlocked if undefined // whether this lock belongs to a modifying request // the promise resolving when the lock is unlocked