# Source: SimpleModelLayerUtil.js

    /*
     * @Description: In User Settings Edit
     * @Author: xiaoying
     * @Date: 2019-09-10 09:21:36
     * @LastEditTime: 2019-09-16 19:07:01
     * @LastEditors: mayuanye
     */
    import { NativeModules } from 'react-native';
    let SmlUtils = NativeModules.JSSimpleModelLayerUtil;

    /**
     * @class SimpleModelLayerUtil
     * @description 简单模型图层工具类
     */
    export default class SimpleModelLayerUtil {
      /**
       * 创建模型存储文件，然后通过该存储文件构建SimpleModelLayer，可往其中添加模型
       *
       * @memberof SimpleModelLayerUtil
       * @param {String} strURL 型存储文件
       * @returns {boolean} true-成功 ；false-失败
       */
      static async createModelStorageFileIfNotExists(strURL) {
        try {
          let result = await SmlUtils.createModelStorageFileIfNotExists(strURL);
          return result;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       *  添加模型，返回Id
       *
       * @memberof SimpleModelLayerUtil
       * @param {Object} simpleModelLayer  模型层 （SimpleModelLayer类型的Object）
       * @param {Object} model 要添加的模型  （Model类型的Object）
       * @returns {Number} 返回Id （int类型的Number）
       */
      static async addModel(simpleModelLayer, model) {
        try {
          let id = await SmlUtils.addModel(
            simpleModelLayer._MGSimpleModelLayerId,
            model._MGModelId
          );
          return id;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       *  更新模型
       *
       * @memberof SimpleModelLayerUtil
       * @param {Object} simpleModelLayer  模型层 （SimpleModelLayer类型的Object）
       * @param {Number} id 模型ID （int类型的Number）
       * @param {Object} model 要更新的模型  （Model类型的Object）
       * @returns {Number} 成功标志 （int类型的Number）
       */
      static async updateModel(simpleModelLayer, id, model) {
        try {
          let result = await SmlUtils.updateModel(
            simpleModelLayer._MGSimpleModelLayerId,
            id,
            model._MGModelId
          );
          return result;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       *  删除模型
       *
       * @memberof SimpleModelLayerUtil
       * @param {Object} simpleModelLayer  模型层 （SimpleModelLayer类型的Object）
       * @param {Number} id 模型ID （int类型的Number）
       * @returns {Number} 成功标志（int类型的Number）
       */
      static async removeModel(simpleModelLayer, id) {
        try {
          let result = await SmlUtils.removeModel(
            simpleModelLayer._MGSimpleModelLayerId,
            id
          );
          return result;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       *  清空数据
       *
       * @memberof SimpleModelLayerUtil
       * @param {Object} simpleModelLayer  模型层 （SimpleModelLayer类型的Object）
       * @returns {Number} 成功标志 （int类型的Number）
       */
      static async clearModels(simpleModelLayer) {
        try {
          let result = await SmlUtils.clearModels(
            simpleModelLayer._MGSimpleModelLayerId
          );
          return result;
        } catch (e) {
          console.error(e);
        }
      }
    }