code: public ORDER compare(OQueryOperator other) {
      final Class<?> thisClass = this.getClass();
      final Class<?> otherClass = other.getClass();
  
      int thisPosition = -1;
      int otherPosition = -1;
      for (int i = 0; i < DEFAULT_OPERATORS_ORDER.length; i++) {
        // subclass of default operators inherit their parent ordering
        final Class<?> clazz = DEFAULT_OPERATORS_ORDER[i];
        if (clazz.isAssignableFrom(thisClass)) {
          thisPosition = i;
        }
        if (clazz.isAssignableFrom(otherClass)) {
          otherPosition = i;
        }
      }
  
      if (thisPosition == -1 || otherPosition == -1) {
        // can not decide which comes first
        return ORDER.UNKNOWNED;
      }
  
      if (thisPosition > otherPosition) {
        return ORDER.AFTER;
      } else if (thisPosition < otherPosition) {
        return ORDER.BEFORE;
      }
  
      return ORDER.EQUAL;
    }
docs: Check priority of this operator compare to given operator.
  
  @param other
  @return ORDER place of this operator compared to given operator