DIR : /home/kozerus/public_html/pn/uize/site-source/js/Uize/Services/FileSystemAdapter.js

/home/kozerus/public_html/pn/uize/site-source/js/Uize/Services

/*______________
|       ______  |   U I Z E    J A V A S C R I P T    F R A M E W O R K
|     /      /  |   ---------------------------------------------------
|    /    O /   |    MODULE : Uize.Services.FileSystemAdapter Class
|   /    / /    |
|  /    / /  /| |    ONLINE : http://www.uize.com
| /____/ /__/_| | COPYRIGHT : (c)2012-2016 UIZE
|          /___ |   LICENSE : Available under MIT License or GNU General Public License
|_______________|             http://www.uize.com/license.html
*/

/* Module Meta Data
	type: Class
	importance: 6
	codeCompleteness: 0
	docCompleteness: 5
*/

/*?
	Introduction
		The =Uize.Services.FileSystemAdapter= module defines an abstract base class for adapters for the file system service (=Uize.Services.FileSystem=).

		*DEVELOPERS:* `Chris van Rensburg`
*/

Uize.module ({
	name:'Uize.Services.FileSystemAdapter',
	superclass:'Uize.Service.Adapter',
	builder:function (_superclass) {
		'use strict';

		return _superclass.subclass ({
			instanceMethods:{
				_getItemsInFolderRecursive:function (_params,_mustBeFolder) {
					var
						m = this,
						_result = [],
						_path = _params.path,
						_pathMatcher = Uize.resolveMatcher (_params.pathMatcher),
						_pathTransformer = Uize.resolveTransformer (_params.pathTransformer),
						_recursive = _params.recursive
					;
					function _addItemsFromFolder (_subPath) {
						var
							_pathPlusSubPath = _path + (_path && _subPath && '/') + _subPath,
							_currentItemPath
						;
						Uize.push (
							_result,
							m.getItemsInFolder (
								{
									path:_pathPlusSubPath,
									pathMatcher:function (_itemPath) {
										return _pathMatcher (_currentItemPath = _subPath + (_subPath && '/') + _itemPath);
									},
									pathTransformer:function (_itemPath) {
										return _pathTransformer (_currentItemPath);
									}
								},
								_mustBeFolder
							)
						);
						if (_recursive) {
							Uize.forEach (
								m.getItemsInFolder ({path:_pathPlusSubPath},true),
								function (_folderName) {_addItemsFromFolder (_subPath + (_subPath && '/') + _folderName)}
							);
						}
					}
					_addItemsFromFolder ('');
					return _result;
				},

				getItemsInFolder:function (_params,_mustBeFolder) {
					// override the implementation of this method in a host specific adapter to the FileSystem service
				},

				getFiles:function (_params,_callback) {
					_callback (this._getItemsInFolderRecursive (_params));
				},

				getFolders:function (_params,_callback) {
					_callback (this._getItemsInFolderRecursive (_params,true));
				}
			},
			staticMethods:{
				getParentFolderPath:function (_path) {
					return _path.slice (0,((Math.max (_path.lastIndexOf ('/'),_path.lastIndexOf ('\\')) + 1) || 1) - 1);
				}
			}
		});
	}
});

//


koh5_pano



Your browser does not support the HTML5 canvas element.


Drag mouse to navigate.

Navigation





17.Aug.2010, Martin Wengenmayer