public void update(KerberosIdentityDescriptor updates) {
    if (updates != null) {
      setName(updates.getName());

      setReference(updates.getReference());

      KerberosPrincipalDescriptor existingPrincipal = getPrincipalDescriptor();
      if (existingPrincipal == null) {
        setPrincipalDescriptor(updates.getPrincipalDescriptor());
      } else {
        existingPrincipal.update(updates.getPrincipalDescriptor());
      }

      KerberosKeytabDescriptor existingKeytabDescriptor = getKeytabDescriptor();
      if (existingKeytabDescriptor == null) {
        setKeytabDescriptor(updates.getKeytabDescriptor());
      } else {
        existingKeytabDescriptor.update(updates.getKeytabDescriptor());
      }

      Predicate updatedWhen = updates.getWhen();
      if (updatedWhen != null) {
        setWhen(updatedWhen);
      }
    }
  }
Updates this KerberosIdentityDescriptor with data from another KerberosIdentityDescriptor
<p/>
Properties will be updated if the relevant updated values are not null.

@param updates the KerberosIdentityDescriptor containing the updated values
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/KerberosIdentityDescriptor.java