class KerberosIdentityDescriptor extends AbstractKerberosDescriptor {

  @Override
  public Map<String, Object> toMap() {
    Map<String, Object> dataMap = super.toMap();

    if (reference != null) {
      dataMap.put(KEY_REFERENCE, reference);
    }

    if (principal != null) {
      dataMap.put(KEY_PRINCIPAL, principal.toMap());
    }

    if (keytab != null) {
      dataMap.put(KEY_KEYTAB, keytab.toMap());
    }

    if (when != null) {
      dataMap.put(KEY_WHEN, PredicateUtils.toMap(when));
    }

    return dataMap;
  }

  public  KerberosIdentityDescriptor(String name, String reference, KerberosPrincipalDescriptor principal, KerberosKeytabDescriptor keytab, Predicate when);
  public  KerberosIdentityDescriptor(Map<?, ?> data);

}