# Source: FClsInfo.js

    /**
     * @content 要素类信息功能组件
     * @author  2019-09-16
     */
    import { NativeModules } from 'react-native';

    let FI = NativeModules.JSFClsInfo;

    import XClsInfo from './XClsInfo.js';
    /**
     * @class FClsInfo
     * @description 要素类信息
     */
    export default class FClsInfo extends XClsInfo {
      constructor() {
        super();
        Object.defineProperty(this, '_MGFClsInfoId', {
          get: function() {
            return this._MGXClsInfoId;
          },
          set: function(_MGFClsInfoId) {
            this._MGXClsInfoId = _MGFClsInfoId;
          },
        });
      }

      /**
       * 构造一个新的 FClsInfo 对象。
       * @memberOf FClsInfo
       * @returns {Promise.<FClsInfo>}
       */
      async createObj() {
        try {
          var { FClsInfoId } = await FI.createObj();
          var fClsInfo = new FClsInfo();
          fClsInfo._MGFClsInfoId = FClsInfoId;
          return fClsInfo;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取简单要素类ID
       * @memberOf FClsInfo
       * @return {Promise}要素类ID
       */
      async getID() {
        try {
          return await FI.getID(this._MGFClsInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取简单要素类类型
       * @memberOf FClsInfo
       * @return {Promise}简单要素类类型
       */
      async getType() {
        try {
          return await FI.getType(this._MGFClsInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取简单要素类URL地址
       * @memberOf FClsInfo
       * @return {Promise}简单要素类URL地址
       */
      async getURL() {
        try {
          return await FI.getURL(this._MGFClsInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取简单要素类名称
       * @memberOf FClsInfo
       * @return {Promise} 类名称
       */
      async getName() {
        try {
          return await FI.getName(this._MGFClsInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置简单要素类名
       * @memberOf FClsInfo
       * @param newVal简单要素类名
       * @return {Promise}
       */
      async setName(newVal) {
        try {
          return await FI.setName(this._MGFClsInfoId, newVal);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取类几何约束类型
       * @memberOf FClsInfo
       * @return {Promise}几何约束类型
       */
      async getGeomType() {
        try {
          return await FI.getGeomType(this._MGFClsInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取显示因子X
       * @memberOf FClsInfo
       * @return {Promise} 显示因子X
       */
      async getScalex() {
        try {
          return await FI.getScalex(this._MGFClsInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取显示因子Y
       * @memberOf FClsInfo
       * @return {Promise} 显示因子Y
       */
      async getScaley() {
        try {
          return await FI.getScaley(this._MGFClsInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置显示因子XY
       * @memberOf FClsInfo
       * @param newVal
       * @return {Promise} 是否设置成功
       */
      async setScaleXY(newXVal, newYVal) {
        try {
          return await FI.setScaleXY(this._MGFClsInfoId, newXVal, newYVal);
        } catch (e) {
          console.error(e);
        }
      }
    }