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;
});