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

    /**
     * 单值专题图
     * @class module:专题图服务.CUniqueTheme
     * @classdesc 单值专题图
     * @description Zondy.Object.Theme.CUniqueTheme
     * @extends CTheme
     * @param {Object} options 属性键值对
     * @param {Zondy.Object.Theme.CThemeInfo} [options.DefaultInfo = null] 缺省专题绘制信息 {@link Zondy.Object.Theme.CThemeInfo}
     * @param {String} [options.Expression = ""] 唯一字段表达式类型
     * @param {Array} [options.UniqueThemeInfoArr = null] 专题绘制信息（如果不设置则采用默认绘制信息） Array<{@link Zondy.Object.Theme.CUniqueThemeInfo}>
     * @param {String} [options.GeoInfoType = null] 专题绘制的图形类型，Reg/Lin/Pnt
     * @param {String} [options.Type = "CUniqueTheme"] 专题图类型,只读属性
     */
    class CUniqueTheme extends CTheme {
      constructor(options) {
        options = defaultValue(options, {})
        super(options)

        /**
         * @private
         * @member Zondy.Object.Theme.CUniqueTheme.prototype.DefaultInfo
         * @type {Zondy.Object.Theme.CThemeInfo}
         * @description 缺省专题绘制信息 {@link Zondy.Object.Theme.CThemeInfo}
         * @default null
         */
        this.DefaultInfo =
          options.DefaultInfo !== undefined ? options.DefaultInfo : null

        /**
         * @private
         * @member Zondy.Object.Theme.CUniqueTheme.prototype.Expression
         * @type {String}
         * @description 唯一字段表达式类型
         * @default ""
         */
        this.Expression = options.Expression !== undefined ? options.Expression : ''

        /**
         * @private
         * @member Zondy.Object.Theme.CUniqueTheme.prototype.UniqueThemeInfoArr
         * @type {Array}
         * @description 专题绘制信息（如果不设置则采用默认绘制信息） Array<{@link Zondy.Object.Theme.CUniqueThemeInfo}>
         * @default null
         */
        this.UniqueThemeInfoArr =
          options.UniqueThemeInfoArr !== undefined
            ? options.UniqueThemeInfoArr
            : null

        /**
         * @private
         * @member Zondy.Object.Theme.CUniqueTheme.prototype.GeoInfoType
         * @type {String}
         * @description 专题绘制的图形类型，Reg/Lin/Pnt
         * @default null
         */
        this.GeoInfoType =
          options.GeoInfoType !== undefined ? options.GeoInfoType : null

        /**
         * @private
         * @member Zondy.Object.Theme.CUniqueTheme.prototype.Type
         * @type {String}
         * @description 专题图类型,只读属性
         * @default "CUniqueTheme"
         */
        this.Type = 'CUniqueTheme'
      }
    }
    export default CUniqueTheme
    Zondy.Object.Theme.CUniqueTheme = CUniqueTheme