class KerberosDescriptor extends AbstractKerberosDescriptorContainer {

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

    if (services != null) {
      List<Map<String, Object>> list = new ArrayList<>();
      for (KerberosServiceDescriptor service : services.values()) {
        list.add(service.toMap());
      }
      map.put(KEY_SERVICES, list);
    }

    if (properties != null) {
      map.put(KEY_PROPERTIES, new TreeMap<>(properties));
    }

    return map;
  }

  public  KerberosDescriptor();
    KerberosDescriptor(Map<?, ?> data);

}