Source: core/object-controller.js

/**
 * @module montage/core/object-controller
 * @requires montage/core/core
 */

var Montage = require("./core").Montage;

/**
 * @class ObjectController
 * @classdesc Generic object controller.
 * @extends Montage
 */
exports.ObjectController = Montage.specialize( /** @lends ObjectController# */ {

    /**
     * @type {Property}
     * @default null
     */
    objectPrototype: {
        enumerable: false,
        value: null
    },

    /**
     * @function
     * @returns new this.objectPrototype()
     */
    newObject: {
        enumerable: false,
        value: function () {
            return new this.objectPrototype();
        }
    },

    /**
     * @function
     * @param {Property} content TODO
     * @returns itself
     */
    initWithContent: {
        value: function (content) {
            this.content = content;
            return this;
        }
    },

    /**
     * @type {Property}
     * @default null
     */
    content: {
        enumerable: false,
        value: null
    },

    objectDescriptorModuleId:require("./core")._objectDescriptorModuleIdDescriptor,

    objectDescriptor:require("./core")._objectDescriptorDescriptor,

    blueprintModuleId:require("./core")._blueprintModuleIdDescriptor,

    blueprint:require("./core")._blueprintDescriptor

});