copy(permission) {
    this._metadata && this._metadata.writeAccess();
    this._rules = Object.assign({}, permission._rules);
    return this;
  }
/**
   * Copies permissions from another permission object
   * @param {util.Permission} permission The permission to copy from
   * @return {util.Permission}
   */
Copies permissions from another permission object
@param {util.Permission} permission The permission to copy from
@return {util.Permission}
Copies permissions from another permission object @param { util . Permission } permission The permission to copy from @return { util . Permission }
copy(permission) {
    this._metadata && this._metadata.writeAccess();
    this._rules = Object.assign({}, permission._rules);
    return this;
  }
copy ( permission ) { this . _metadata && this . _metadata . writeAccess ( ) ; this . _rules = Object . assign ( { } , permission . _rules ) ; return this ; }
Copies permissions from another permission object
 @param {util.Permission} permission The permission to copy from
 @return {util.Permission}
Copies permissions from another permission object @param { util . Permission } permission The permission to copy from @return { util . Permission }