    import { defaultValue } from '../../util'
    import Symbol from './Symbol'
    import SimpleLineSymbol from './SimpleLineSymbol'
    import { SymbolType } from '../enum'

    /**
     * 填充符号基类
     * @class FillSymbol
     * @moduleEX SymbolModule
     * @extends Symbol
     * @param {Object} options 构造参数
     * @param {SimpleLineSymbol} [options.outline = new SimpleLineSymbol()] 外边线样式
     */
    class FillSymbol extends Symbol {
      constructor(options) {
        super(options)
        options = defaultValue(options, {})
        /**
         * 符号类型
         * @member {String} FillSymbol.prototype.type
         */
        this.type = SymbolType.simpleFill
        /**
         * 外边线样式类型
         * @member {SimpleLineSymbol} FillSymbol.prototype.outline
         */
        this.outline = this._decorate(
          'outline',
          options.outline,
          SimpleLineSymbol,
          SimpleLineSymbol.fromJSON
        )
      }

      /**
       * @function FillSymbol.prototype.toJSON
       * @description 将JS对象转换为JSON格式
       * @returns {Object} 符号的实例化JSON
       * @example
       * //将JS对象转换为JSON格式
       * let symbol = fillSymbol.toJSON();
       */
      toJSON() {
        const json = super.toJSON()
        json.type = this.type
        json.outline = this.outline.toJSON()
        return json
      }
    }
    export default FillSymbol