@Override
  public boolean equals(Object o) {
    if (o == null) {
      return false;
    }
    if (!(o instanceof StatisticDescriptorImpl)) {
      return false;
    }
    StatisticDescriptorImpl other = (StatisticDescriptorImpl) o;
    if (getId() != other.getId()) {
      return false;
    }
    if (!getName().equals(other.getName())) {
      return false;
    }
    if (isCounter() != other.isCounter()) {
      return false;
    }
    if (isLargerBetter() != other.isLargerBetter()) {
      return false;
    }
    if (!getType().equals(other.getType())) {
      return false;
    }
    if (!getUnit().equals(other.getUnit())) {
      return false;
    }
    return getDescription().equals(other.getDescription());
  }
<code>StatisticDescriptor</code>s are naturally ordered by their name.

@throws IllegalArgumentException <code>o</code> is not a <code>StatisticDescriptor</code>

@see #getName
geode-core/src/main/java/org/apache/geode/internal/statistics/StatisticDescriptorImpl.java