JavaScript Extension Development API for Oracle Visual Builder Cloud Service - Classic Applications

Source: components.dt/js/spi/registration/CreatorProvider.js

define([], function () {

    'use strict';

    /**
     * Provider interface returning instances of component view {@link components.dt/js/spi/creators/Creator creators}.
     * Registers into ABCS with the {@link components.dt/js/api/ComponentProviderRegistry Component Registration API}.
     *
     * <p>Creator is called when your component is dropped into a page or called though
     * the {@link components.dt/js/api/ComponentFactory Creator API} and asked to
     * create a new instance of the component view hierarchy representing the ABCS
     * component model.</p>
     *
     * <p>You should definitely implement this interface to provide a way of
     * creating your component instances, without a creator ABCS will not be able
     * to insert your component views into a page.</p>
     *
     * <p>An instance of the provider must be registered into ABCS through the
     * {@link components.dt/js/api/ComponentProviderRegistry Component Registration API}.</p>
     *
     * @AbcsExtension stable
     * @exports components.dt/js/spi/registration/CreatorProvider
     * @constructor
     * @private
     * @version 16.3.5
     * @example <caption>An example of a component creator provider</caption>
     * define([
     *    'myComponent/MyCreator'
     * ], function (
     *    Creator
     *    ) {
     *
     *    'use strict';
     *
     *    var CreatorProvider = function () {
     *    };
     *
     *    CreatorProvider.prototype.getCreator = function () {
     *        return new Creator();
     *    };
     *
     *    return new CreatorProvider();
     *
     * });
     * @see {@link components.dt/js/api/ComponentProviderRegistry Component Registration API}
     * @see {@link components.dt/js/spi/creators/Creator Creator SPI}
     * @see {@link components.dt/js/spi/creators/Creator Creator implementation example}
     */
    var CreatorProvider = function() {
        AbcsLib.checkThis(this);
    };

    /**
     * Get the component's {@link components.dt/js/spi/creators/Creator creator}
     * creating new component's instances.
     *
     * <p><strong>Must</strong> be implemented.</p>
     *
     * @AbcsExtension stable
     * @version 16.3.5
     * @returns {components.dt/js/spi/creators/Creator} creator instance
     */
    CreatorProvider.prototype.getCreator = function () {};

    return CreatorProvider;

});