command.js 2.04 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2016 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 may be covered by U.S. and Foreign Patents,
 * patents in process, 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.
 */
/* istanbul ignore next */
define('screens/player/command/command', [], function() {
    'use strict';

    /**
     * Defines the command API.
     *
     * @interface PlayerCommand
     */
    return Object.freeze({

        /**
         * The service name
         * @property serviceName
         * @memberof PlayerCommand
         * @constant
         */
        serviceName: 'com.adobe.cq.screens.player.command.command',

        /**
         * Checks is the command is supported by the handler.
         * @memberof PlayerCommand
         *
         * @param {String} cmd The command to check
         *
         * @returns {Boolean} `true` if the command is supported, `false` otherwise
         */
        canHandle: function(cmd) {
            return false;
        },

        /**
         * Handles a command. Function must be called with a valid Command.
         * Doing otherwise will result in undefined behavior. Call `canHandle` first.
         *
         * @memberof PlayerCommand
         *
         * @param {String} command The command to execute.
         * @param {Object} payload The command payload.
         * @return {Promise|undefined} Returns a Promise if command is async.
         * @throws Will throw an error if the Command cannot be handled unexpectedly.
         */
        handleCommand: function(command, payload) {
            return Promise.resolve();
        }

    });

});