@Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    }
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    PersistentMemberPattern other = (PersistentMemberPattern) obj;
    if (directory == null) {
      if (other.directory != null) {
        return false;
      }
    } else if (!directory.equals(other.directory)) {
      return false;
    }
    if (diskStoreID == null) {
      if (other.diskStoreID != null) {
        return false;
      }
    } else if (!diskStoreID.equals(other.diskStoreID)) {
      return false;
    }
    if (host == null) {
      if (other.host != null) {
        return false;
      }
    } else if (!host.equals(other.host)) {
      return false;
    }
    return revokedTime == other.revokedTime;
  }
Implementation of the public PersistentID. It holds the region, host, directory, and timestamp.

This class also is also used to describe members that the user has revoked. Any fields that are
null will be considered a wildcard matching any members.

@since GemFire prPersistSprint1
geode-core/src/main/java/org/apache/geode/internal/cache/persistence/PersistentMemberPattern.java