    ﻿import { Zondy } from '../../../base'
    import { defaultValue, extend } from '../../../util'

    /**
     * 专题图信息(基类)
     * @class module:专题图服务.CThemeInfo
     * @classdesc 专题图信息(基类)
     * @description Zondy.Object.Theme.CThemeInfo
     * @param {Object} options 属性键值对
     * @param {String} [options.Caption = null] 名称
     * @param {Boolean} [options.IsVisible = true] 可见标志
     * @param {Number} [options.MaxScale = 0] 最大显示比
     * @param {Number} [options.MinScale = 0] 最小显示比
     * @param {Zondy.Object.Theme.CRegInfo} [options.RegInfo = null] 区信息 {@link Zondy.Object.Theme.CRegInfo}
     * @param {Zondy.Object.Theme.CLinInfo} [options.LinInfo = null] 线信息 {@link Zondy.Object.Theme.CLinInfo}
     * @param {Zondy.Object.Theme.CPntInfo} [options.PntInfo = null] 点信息 {@link Zondy.Object.Theme.CPntInfo}
     */
    class CThemeInfo {
      constructor(options) {
        options = defaultValue(options, {})
        extend(this, options)

        /**
         * @private
         * @member Zondy.Object.Theme.CThemeInfo.prototype.Caption
         * @type {String}
         * @description 名称
         * @default null
         */
        this.Caption = options.Caption !== undefined ? options.Caption : null

        /**
         * @private
         * @member Zondy.Object.Theme.CThemeInfo.prototype.IsVisible
         * @type {Boolean}
         * @description 可见标志
         * @default true
         */
        this.IsVisible = options.IsVisible !== undefined ? options.IsVisible : true

        /**
         * @private
         * @member Zondy.Object.Theme.CThemeInfo.prototype.MaxScale
         * @type {Number}
         * @description 最大显示比
         * @default 0
         */
        this.MaxScale =
          options.MaxScale !== undefined ? parseFloat(options.MaxScale) : 0

        /**
         * @private
         * @member Zondy.Object.Theme.CThemeInfo.prototype.MinScale
         * @type {Number}
         * @description 最小显示比
         * @default 0
         */
        this.MinScale =
          options.MinScale !== undefined ? parseFloat(options.MinScale) : 0

        /**
         * @private
         * @member Zondy.Object.Theme.CThemeInfo.prototype.RegInfo
         * @type {Zondy.Object.Theme.CRegInfo}
         * @description 区信息 {@link Zondy.Object.Theme.CRegInfo}
         * @default null
         */
        this.RegInfo = options.RegInfo !== undefined ? options.RegInfo : null

        /**
         * @private
         * @member Zondy.Object.Theme.CThemeInfo.prototype.LinInfo
         * @type {Zondy.Object.Theme.CLinInfo}
         * @description 线信息 {@link Zondy.Object.Theme.CLinInfo}
         * @default null
         */
        this.LinInfo = options.LinInfo !== undefined ? options.LinInfo : null

        /**
         * @private
         * @member Zondy.Object.Theme.CThemeInfo.prototype.PntInfo
         * @type {Zondy.Object.Theme.CPntInfo}
         * @description 点信息 {@link Zondy.Object.Theme.CPntInfo}
         * @default null
         */
        this.PntInfo = options.PntInfo !== undefined ? options.PntInfo : null
      }
    }
    export default CThemeInfo
    Zondy.Object.Theme.CThemeInfo = CThemeInfo