filesystem-service.js 2.5 KB
/*
 *
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2017 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

/* globals Promise */

define('screens/player/firmware/filesystem/impl/filesystem-service', [
    'screens/player/shared/serviceadmin',
    'screens/player/firmware/filesystem/filesystem',
    'screens/player/firmware/filesystem/spi/filesystem',
    'screens/player/store/store',
    'module'
], function(ServiceAdmin, Filesystem, FilesystemSpi, Store, mod) {
    'use strict';

    /**
     * Implements the Filesystem service
     *
     * @class FilesystemService
     * @implements {Filesystem}
     */
     return Object.create(Filesystem, {

         serviceId: {
             value: mod.id
         },

         serviceRanking: {
             value: 10
         },

         activate: {
             value: function() {
                 return new Promise(function(resolve) {
                     ServiceAdmin.onServiceHighestRankedStart(FilesystemSpi.serviceName, function() {
                        resolve();
                     });
                 });
             }
         },

         deactivate: {
             value: function() {
                 return Promise.resolve();
             }
         },

         joinPath: {
             value: function(paths) {
                 return ServiceAdmin.getService(FilesystemSpi.serviceName).joinPath(paths);
             }
         },

         getUserDataPath: {
             value: function() {
                 return ServiceAdmin.getService(FilesystemSpi.serviceName).getUserDataPath();
             }
         },

         readFileAsText: {
             value: function(filePath) {
               return ServiceAdmin.getService(FilesystemSpi.serviceName).readFileAsText(filePath);
             }
         }

     });

});

/* istanbul ignore next */
require([
    'screens/player/firmware/filesystem/impl/filesystem-service',
    'screens/player/shared/serviceadmin'
], function(Service, ServiceAdmin) {
    'use strict';
    ServiceAdmin.register(Service);
});