# Source: Dot.js

    /**
     * @content 点对象功能组件
     * @author fjl 2019-6-14 下午2:52:36
     */
    import { NativeModules } from 'react-native';
    let X = NativeModules.JSDot;

    /**
     * @class Dot
     */
    export default class Dot {
      /**
       * 构造一个新的 Dot 对象。
       * @memberOf Dot
       * @returns {Promise.<Dot>}
       */
      async createObj() {
        try {
          if (
            typeof arguments[0] === 'number' &&
            typeof arguments[1] === 'number'
          ) {
            var { point2DId } = await X.createObjByXY(arguments[0], arguments[1]);
            var dot = new Dot();
            dot._MGDotId = point2DId;
            return dot;
          } else {
            var { point2DId } = await X.createObj();
            var dot = new Dot();
            dot._MGDotId = point2DId;
            return dot;
          }
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取X坐标
       * @memberOf Dot
       * @returns {Promise<*>}
       */
      async getX() {
        try {
          let x = await X.getX(this._MGDotId);
          return x;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取Y坐标
       * @memberOf Dot
       * @returns {Promise<*>}
       */
      async getY() {
        try {
          let y = await X.getY(this._MGDotId);
          return y;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 判断Dot对象是否有效或是否可用
       *
       * @memberof Dot
       * @returns {boolean}  true：有效；false：无效
       */
      isValid(){
        try {
          if(this._MGDotId === undefined || this._MGDotId === null){
            return false;
          } else {
            return true;
          }
        } catch (e) {
          console.error(e);
        }
      }
    }