TransformOperationProvider.js

/**
 * @copyright 2018 Tridium, Inc. All Rights Reserved.
 * @author JJ Frankovich
 */

/**
 * @module nmodule/export/rc/TransformOperationProvider
 */
define([], function () {
  'use strict';

  /**
   * API Status: **Development**
   *
   * A provider for TransformOperations.
   *
   * @interface
   * @alias module:nmodule/export/rc/TransformOperationProvider
   */
  class TransformOperationProvider {

    /**
     * Resolve an Array of the available TransformOperations to the given
     * subject.
     *
     * Note that the subject received may depend on how the transform was
     * invoked. For instance, if performing an Export command on a node in the
     * nav tree, the subject might be a Component. If performing an Export
     * command by using the Export button in the toolbar, the subject would be
     * the Widget currently being viewed. Be sure to perform the appropriate
     * type checking on the input subject.
     *
     * @abstract
     * @param {*} subject
     * @returns {Promise.<Array.<module:nmodule/export/rc/TransformOperation>>}
     */
    getTransformOperations(subject) {
      throw new Error('not implemented');
    }
  }

  return TransformOperationProvider;
});