yahoo/blink-diff

View on GitHub
lib/configuration/structure/structure.js

Summary

Maintainability
A
0 mins
Test Coverage
// Copyright 2015 Yahoo! Inc.
// Copyrights licensed under the Mit License. See the accompanying LICENSE file for terms.

var Base = require('../base');

var Version = require('./version');
var Device = require('./device');
var Document = require('./document');
var ViewPort = require('./viewPort');
var Screenshot = require('./screenshot');
var DomElement = require('./domElement');

/**
 * @class Structure
 * @extends Base
 * @module Configuration
 * @submodule Structure
 *
 * @property {Version} _version
 * @property {Device} _device
 * @property {Document} _document
 * @property {ViewPort} _viewPort
 * @property {Screenshot} _screenshot
 * @property {DomElement} _dom
 */
var Structure = Base.extend(

    /**
     * Structure constructor
     *
     * @param {object} options
     * @param {object|Version} options.version
     * @param {object|Device} options.device
     * @param {object|Document} options.document
     * @param {object|ViewPort} options.viewPort
     * @param {object|Screenshot} options.screenshot
     * @param {object|DomElement} options.dom
     * @constructor
     */
    function (options) {
        this.__super(options);

        this.setVersion(options.version);
        this.setDevice(options.device);
        this.setDocument(options.document);
        this.setViewPort(options.viewPort);
        this.setScreenshot(options.screenshot);
        this.setDom(options.dom);
    },

    {
        /**
         * Gets the version of the structure format
         *
         * @method getVersion
         * @return {Version}
         */
        getVersion: function () {
            return this._version;
        },

        /**
         * Sets the version of the structure format
         *
         * @method setVersion
         * @param {object|Version} value
         */
        setVersion: function (value) {
            this._version = this._parseObject(value, Version, 'version');
        },


        /**
         * Gets the device from where the data was recorded
         *
         * @method getDevice
         * @return {Device}
         */
        getDevice: function () {
            return this._device;
        },

        /**
         * Sets the device from where the data was recorded
         *
         * @method setDevice
         * @param {object|Device} value
         */
        setDevice: function (value) {
            this._device = this._parseObject(value, Device, 'device');
        },


        /**
         * Gets the document
         *
         * @method getDocument
         * @return {Document}
         */
        getDocument: function () {
            return this._document;
        },

        /**
         * Sets the document
         *
         * @method setDocument
         * @param {object|Document} value
         */
        setDocument: function (value) {
            this._document = this._parseObject(value, Document, 'document');
        },


        /**
         * Gets the view-port
         *
         * @method getViewPort
         * @return {ViewPort}
         */
        getViewPort: function () {
            return this._viewPort;
        },

        /**
         * Sets the view-port
         *
         * @method setViewPort
         * @param {object|ViewPort} value
         */
        setViewPort: function (value) {
            this._viewPort = this._parseObject(value, ViewPort, 'view-port');
        },


        /**
         * Gets the screenshot information
         *
         * @method getScreenshot
         * @return {Screenshot}
         */
        getScreenshot: function () {
            return this._screenshot;
        },

        /**
         * Sets the screenshot information
         *
         * @method setScreenshot
         * @param {object|Screenshot} value
         */
        setScreenshot: function (value) {
            this._screenshot = this._parseObject(value, Screenshot, 'screenshot');
        },


        /**
         * Gets the DOM
         *
         * @method getDom
         * @return {DomElement}
         */
        getDom: function () {
            return this._dom;
        },

        /**
         * Sets the DOM
         *
         * @method setDom
         * @param {object|DomElement} value
         */
        setDom: function (value) {
            this._dom = this._parseObject(value, DomElement, 'DOM');
        }
    },

    {
        /**
         * @property TYPE
         * @type {string}
         * @static
         */
        TYPE: 'CONFIGURATION_STRUCTURE'
    }
);

module.exports = Structure;