/**
   * Implements the equals operation so that 2 elements are equal if all their member values are
   * equal.
   */
  public boolean equals(Object object) {
    if (object == null) {
      return false;
    }

    BaseSecurityEntry obj = (BaseSecurityEntry) object;

    Iterator i = accesses.iterator();
    Iterator i2 = obj.accesses.iterator();
    while (i.hasNext()) {
      BaseSecurityAccess c1 = (BaseSecurityAccess) i.next();
      BaseSecurityAccess c2 = null;

      if (i2.hasNext()) {
        c2 = (BaseSecurityAccess) i2.next();
      } else {
        return false;
      }

      if (!c1.equals(c2)) {
        return false;
      }
    }

    if (i2.hasNext()) {
      return false;
    }

    return super.equals(object);
  }