Esempio n. 1
0
  /**
   * Term comparison method
   *
   * @return true if the input Term is equal to the object, false otherwize
   */
  public boolean equal(Term _any) {

    try {

      /* Pids */
      if ((PidV != null) && (_any.PidV != null)) if (PidV.equal(_any.PidV)) return true;

      /* Refs */
      if ((RefV != null) && (_any.RefV != null)) if (RefV.equal(_any.RefV)) return true;

      /* Ports */
      if ((PortV != null) && (_any.PortV != null)) if (PortV.equals(_any.PortV)) return true;

      /* strings */
      if ((stringV != null) && (_any.stringV != null))
        if (stringV.equals(_any.stringV)) return true;

      /* atoms and booleans */
      if ((atomV != null) && (_any.atomV != null)) if (atomV.equals(_any.atomV)) return true;

      /* booleans */
      if (atomV != null) if (_any.booleanV == Boolean.valueOf(atomV).booleanValue()) return true;

      if (_any.atomV != null)
        if (booleanV == Boolean.valueOf(_any.atomV).booleanValue()) return true;

      /* integer types plus floating point types */
      double _ownNS = longV + doubleV;

      double _othersNS = _any.longV + _any.doubleV;

      if ((equal(_ownNS, _othersNS)) && (!equal(_ownNS, 0))) return true;

      /* All together, 0 or false */
      if ((equal(_ownNS, _othersNS)) && booleanV == _any.booleanV) return true;

      return false;

    } catch (Exception e) {
      e.printStackTrace();
      return false;
    }
  }