@Override
  public boolean equals(Object object) {
    if (object == null) {
      return false;
    } else if (object == this) {
      return true;
    } else if (object instanceof AbstractKerberosDescriptor) {
      AbstractKerberosDescriptor descriptor = (AbstractKerberosDescriptor) object;
      return (
          (getName() == null)
              ? (descriptor.getName() == null)
              : getName().equals(descriptor.getName())
      );
    } else {
      return false;
    }
  }
Traverses up the hierarchy to find the "root" or "parent" container.
<p/>
The root AbstractKerberosDescriptor is the first descriptor in the hierarchy with a null parent.

@return the AbstractKerberosDescriptor implementation that is found to be the root of the hierarchy.
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/AbstractKerberosDescriptor.java