103 lines
3.2 KiB
JavaScript
103 lines
3.2 KiB
JavaScript
// Copyright 2011 The Closure Library Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
/**
|
|
* @fileoverview A wrapper for the HTML5 FileError object.
|
|
*
|
|
*/
|
|
|
|
goog.provide('goog.fs.Error');
|
|
goog.provide('goog.fs.Error.ErrorCode');
|
|
|
|
goog.require('goog.debug.Error');
|
|
goog.require('goog.string');
|
|
|
|
|
|
|
|
/**
|
|
* A filesystem error. Since the filesystem API is asynchronous, stack traces
|
|
* are less useful for identifying where errors come from, so this includes a
|
|
* large amount of metadata in the message.
|
|
*
|
|
* @param {number} code The error code for the error.
|
|
* @param {string} action The action being undertaken when the error was raised.
|
|
* @constructor
|
|
* @extends {goog.debug.Error}
|
|
*/
|
|
goog.fs.Error = function(code, action) {
|
|
goog.base(this, goog.string.subs('Error %s: %s', action,
|
|
goog.fs.Error.getDebugMessage(code)));
|
|
this.code = /** @type {goog.fs.Error.ErrorCode} */ (code);
|
|
};
|
|
goog.inherits(goog.fs.Error, goog.debug.Error);
|
|
|
|
|
|
/**
|
|
* Error codes for file errors.
|
|
* @see http://www.w3.org/TR/file-system-api/#idl-def-FileException
|
|
*
|
|
* @enum {number}
|
|
*/
|
|
goog.fs.Error.ErrorCode = {
|
|
NOT_FOUND: 1,
|
|
SECURITY: 2,
|
|
ABORT: 3,
|
|
NOT_READABLE: 4,
|
|
ENCODING: 5,
|
|
NO_MODIFICATION_ALLOWED: 6,
|
|
INVALID_STATE: 7,
|
|
SYNTAX: 8,
|
|
INVALID_MODIFICATION: 9,
|
|
QUOTA_EXCEEDED: 10,
|
|
TYPE_MISMATCH: 11,
|
|
PATH_EXISTS: 12
|
|
};
|
|
|
|
|
|
/**
|
|
* @param {number} errorCode The error code for the error.
|
|
* @return {string} A debug message for the given error code. These messages are
|
|
* for debugging only and are not localized.
|
|
*/
|
|
goog.fs.Error.getDebugMessage = function(errorCode) {
|
|
switch (errorCode) {
|
|
case goog.fs.Error.ErrorCode.NOT_FOUND:
|
|
return 'File or directory not found';
|
|
case goog.fs.Error.ErrorCode.SECURITY:
|
|
return 'Insecure or disallowed operation';
|
|
case goog.fs.Error.ErrorCode.ABORT:
|
|
return 'Operation aborted';
|
|
case goog.fs.Error.ErrorCode.NOT_READABLE:
|
|
return 'File or directory not readable';
|
|
case goog.fs.Error.ErrorCode.ENCODING:
|
|
return 'Invalid encoding';
|
|
case goog.fs.Error.ErrorCode.NO_MODIFICATION_ALLOWED:
|
|
return 'Cannot modify file or directory';
|
|
case goog.fs.Error.ErrorCode.INVALID_STATE:
|
|
return 'Invalid state';
|
|
case goog.fs.Error.ErrorCode.SYNTAX:
|
|
return 'Invalid line-ending specifier';
|
|
case goog.fs.Error.ErrorCode.INVALID_MODIFICATION:
|
|
return 'Invalid modification';
|
|
case goog.fs.Error.ErrorCode.QUOTA_EXCEEDED:
|
|
return 'Quota exceeded';
|
|
case goog.fs.Error.ErrorCode.TYPE_MISMATCH:
|
|
return 'Invalid filetype';
|
|
case goog.fs.Error.ErrorCode.PATH_EXISTS:
|
|
return 'File or directory already exists at specified path';
|
|
default:
|
|
return 'Unrecognized error';
|
|
}
|
|
};
|