@Override
  public void readExternal(Element element) {
    //noinspection HardCodedStringLiteral
    name = ObjectUtils.notNull(element.getAttributeValue(NAME_ATTRIBUTE_NAME), "");
    final Attribute createdAttribute = element.getAttribute(CREATED_ATTRIBUTE_NAME);
    if (createdAttribute != null) {
      try {
        created = createdAttribute.getLongValue();
      }
      catch (DataConversionException ignore) {}
    }
    final Attribute uuidAttribute = element.getAttribute(UUID_ATTRIBUTE_NAME);
    if (uuidAttribute != null) {
      try {
        uuid = uuidAttribute.getValue();
      }
      catch (IllegalArgumentException ignore) {}
    }
    final Attribute descriptionAttribute = element.getAttribute(DESCRIPTION_ATTRIBUTE_NAME);
    if (descriptionAttribute != null) {
      description = descriptionAttribute.getValue();
    }
    final Attribute suppressIdAttribute = element.getAttribute(SUPPRESS_ID_ATTRIBUTE_NAME);
    if (suppressIdAttribute != null) {
      suppressId = suppressIdAttribute.getValue();
    }
    final Attribute problemDescriptorAttribute = element.getAttribute(PROBLEM_DESCRIPTOR_ATTRIBUTE_NAME);
    if (problemDescriptorAttribute != null) {
      problemDescriptor = problemDescriptorAttribute.getValue();
    }
    Attribute attribute = element.getAttribute(CLEANUP_ATTRIBUTE_NAME);
    if (attribute != null) {
      try {
        cleanup = attribute.getBooleanValue();
      }
      catch (DataConversionException e) {
        cleanup = false;
      }
    }
    final Attribute mainAttribute = element.getAttribute(ORDER_ATTRIBUTE_NAME);
    if (mainAttribute != null) {
      try {
        order = Math.max(0, mainAttribute.getIntValue());
      }
      catch (DataConversionException ignore) {}
    }
  }
@Override
  public void readExternal(Element element)