class CommunitySet implements Serializable {

  @Override
  public boolean equals(@Nullable Object obj) {
    if (this == obj) {
      return true;
    }
    if (!(obj instanceof CommunitySet)) {
      return false;
    }
    CommunitySet other = (CommunitySet) obj;
    return (_hashCode == other._hashCode || _hashCode == 0 || other._hashCode == 0)
        && _communities.equals(other._communities);
  }

  private  CommunitySet(ImmutableSet<Community> communities);

}