goog.provide('M.facade.Base'); goog.require('M.Object'); (function() { /** * @classdesc * Main facade Object. This class creates a facede * Object which has an implementation Object and * provides the needed methods to access its implementation * * @constructor * @param {Object} impl implementation object * @extends {M.Object} * @api stable */ M.facade.Base = (function(impl) { /** * Implementation of this object * @private * @type {Object} */ this.impl_ = impl; if (!M.utils.isNullOrEmpty(this.impl_) && M.utils.isFunction(this.impl_.setFacadeObj)) { this.impl_.setFacadeObj(this); } // calls the super constructor goog.base(this); }); goog.inherits(M.facade.Base, M.Object); /** * This function provides the implementation * of the object * * @public * @function * @returns {Object} * @api stable */ M.facade.Base.prototype.getImpl = function() { return this.impl_; }; /** * This function set implementation of this control * * @public * @function * @param {M.Map} impl to add the plugin * @api stable */ M.facade.Base.prototype.setImpl = function(impl) { this.impl_ = impl; }; })();