diff options
Diffstat (limited to 'plugins/cordova-plugin-file/www/Entry.js')
| -rw-r--r-- | plugins/cordova-plugin-file/www/Entry.js | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/plugins/cordova-plugin-file/www/Entry.js b/plugins/cordova-plugin-file/www/Entry.js deleted file mode 100644 index 9cdc8774..00000000 --- a/plugins/cordova-plugin-file/www/Entry.js +++ /dev/null @@ -1,260 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - * -*/ - -var argscheck = require('cordova/argscheck'), - exec = require('cordova/exec'), - FileError = require('./FileError'), - Metadata = require('./Metadata'); - -/** - * Represents a file or directory on the local file system. - * - * @param isFile - * {boolean} true if Entry is a file (readonly) - * @param isDirectory - * {boolean} true if Entry is a directory (readonly) - * @param name - * {DOMString} name of the file or directory, excluding the path - * leading to it (readonly) - * @param fullPath - * {DOMString} the absolute full path to the file or directory - * (readonly) - * @param fileSystem - * {FileSystem} the filesystem on which this entry resides - * (readonly) - * @param nativeURL - * {DOMString} an alternate URL which can be used by native - * webview controls, for example media players. - * (optional, readonly) - */ -function Entry(isFile, isDirectory, name, fullPath, fileSystem, nativeURL) { - this.isFile = !!isFile; - this.isDirectory = !!isDirectory; - this.name = name || ''; - this.fullPath = fullPath || ''; - this.filesystem = fileSystem || null; - this.nativeURL = nativeURL || null; -} - -/** - * Look up the metadata of the entry. - * - * @param successCallback - * {Function} is called with a Metadata object - * @param errorCallback - * {Function} is called with a FileError - */ -Entry.prototype.getMetadata = function(successCallback, errorCallback) { - argscheck.checkArgs('FF', 'Entry.getMetadata', arguments); - var success = successCallback && function(entryMetadata) { - var metadata = new Metadata({ - size: entryMetadata.size, - modificationTime: entryMetadata.lastModifiedDate - }); - successCallback(metadata); - }; - var fail = errorCallback && function(code) { - errorCallback(new FileError(code)); - }; - exec(success, fail, "File", "getFileMetadata", [this.toInternalURL()]); -}; - -/** - * Set the metadata of the entry. - * - * @param successCallback - * {Function} is called with a Metadata object - * @param errorCallback - * {Function} is called with a FileError - * @param metadataObject - * {Object} keys and values to set - */ -Entry.prototype.setMetadata = function(successCallback, errorCallback, metadataObject) { - argscheck.checkArgs('FFO', 'Entry.setMetadata', arguments); - exec(successCallback, errorCallback, "File", "setMetadata", [this.toInternalURL(), metadataObject]); -}; - -/** - * Move a file or directory to a new location. - * - * @param parent - * {DirectoryEntry} the directory to which to move this entry - * @param newName - * {DOMString} new name of the entry, defaults to the current name - * @param successCallback - * {Function} called with the new DirectoryEntry object - * @param errorCallback - * {Function} called with a FileError - */ -Entry.prototype.moveTo = function(parent, newName, successCallback, errorCallback) { - argscheck.checkArgs('oSFF', 'Entry.moveTo', arguments); - var fail = errorCallback && function(code) { - errorCallback(new FileError(code)); - }; - var filesystem = this.filesystem, - srcURL = this.toInternalURL(), - // entry name - name = newName || this.name, - success = function(entry) { - if (entry) { - if (successCallback) { - // create appropriate Entry object - var newFSName = entry.filesystemName || (entry.filesystem && entry.filesystem.name); - var fs = newFSName ? new FileSystem(newFSName, { name: "", fullPath: "/" }) : new FileSystem(parent.filesystem.name, { name: "", fullPath: "/" }); - var result = (entry.isDirectory) ? new (require('./DirectoryEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL) : new (require('cordova-plugin-file.FileEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL); - successCallback(result); - } - } - else { - // no Entry object returned - fail && fail(FileError.NOT_FOUND_ERR); - } - }; - - // copy - exec(success, fail, "File", "moveTo", [srcURL, parent.toInternalURL(), name]); -}; - -/** - * Copy a directory to a different location. - * - * @param parent - * {DirectoryEntry} the directory to which to copy the entry - * @param newName - * {DOMString} new name of the entry, defaults to the current name - * @param successCallback - * {Function} called with the new Entry object - * @param errorCallback - * {Function} called with a FileError - */ -Entry.prototype.copyTo = function(parent, newName, successCallback, errorCallback) { - argscheck.checkArgs('oSFF', 'Entry.copyTo', arguments); - var fail = errorCallback && function(code) { - errorCallback(new FileError(code)); - }; - var filesystem = this.filesystem, - srcURL = this.toInternalURL(), - // entry name - name = newName || this.name, - // success callback - success = function(entry) { - if (entry) { - if (successCallback) { - // create appropriate Entry object - var newFSName = entry.filesystemName || (entry.filesystem && entry.filesystem.name); - var fs = newFSName ? new FileSystem(newFSName, { name: "", fullPath: "/" }) : new FileSystem(parent.filesystem.name, { name: "", fullPath: "/" }); - var result = (entry.isDirectory) ? new (require('./DirectoryEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL) : new (require('cordova-plugin-file.FileEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL); - successCallback(result); - } - } - else { - // no Entry object returned - fail && fail(FileError.NOT_FOUND_ERR); - } - }; - - // copy - exec(success, fail, "File", "copyTo", [srcURL, parent.toInternalURL(), name]); -}; - -/** - * Return a URL that can be passed across the bridge to identify this entry. - */ -Entry.prototype.toInternalURL = function() { - if (this.filesystem && this.filesystem.__format__) { - return this.filesystem.__format__(this.fullPath, this.nativeURL); - } -}; - -/** - * Return a URL that can be used to identify this entry. - * Use a URL that can be used to as the src attribute of a <video> or - * <audio> tag. If that is not possible, construct a cdvfile:// URL. - */ -Entry.prototype.toURL = function() { - if (this.nativeURL) { - return this.nativeURL; - } - // fullPath attribute may contain the full URL in the case that - // toInternalURL fails. - return this.toInternalURL() || "file://localhost" + this.fullPath; -}; - -/** - * Backwards-compatibility: In v1.0.0 - 1.0.2, .toURL would only return a - * cdvfile:// URL, and this method was necessary to obtain URLs usable by the - * webview. - * See CB-6051, CB-6106, CB-6117, CB-6152, CB-6199, CB-6201, CB-6243, CB-6249, - * and CB-6300. - */ -Entry.prototype.toNativeURL = function() { - console.log("DEPRECATED: Update your code to use 'toURL'"); - return this.toURL(); -}; - -/** - * Returns a URI that can be used to identify this entry. - * - * @param {DOMString} mimeType for a FileEntry, the mime type to be used to interpret the file, when loaded through this URI. - * @return uri - */ -Entry.prototype.toURI = function(mimeType) { - console.log("DEPRECATED: Update your code to use 'toURL'"); - return this.toURL(); -}; - -/** - * Remove a file or directory. It is an error to attempt to delete a - * directory that is not empty. It is an error to attempt to delete a - * root directory of a file system. - * - * @param successCallback {Function} called with no parameters - * @param errorCallback {Function} called with a FileError - */ -Entry.prototype.remove = function(successCallback, errorCallback) { - argscheck.checkArgs('FF', 'Entry.remove', arguments); - var fail = errorCallback && function(code) { - errorCallback(new FileError(code)); - }; - exec(successCallback, fail, "File", "remove", [this.toInternalURL()]); -}; - -/** - * Look up the parent DirectoryEntry of this entry. - * - * @param successCallback {Function} called with the parent DirectoryEntry object - * @param errorCallback {Function} called with a FileError - */ -Entry.prototype.getParent = function(successCallback, errorCallback) { - argscheck.checkArgs('FF', 'Entry.getParent', arguments); - var fs = this.filesystem; - var win = successCallback && function(result) { - var DirectoryEntry = require('./DirectoryEntry'); - var entry = new DirectoryEntry(result.name, result.fullPath, fs, result.nativeURL); - successCallback(entry); - }; - var fail = errorCallback && function(code) { - errorCallback(new FileError(code)); - }; - exec(win, fail, "File", "getParent", [this.toInternalURL()]); -}; - -module.exports = Entry; |
