@Override
  public int compare(Attribute attribute0, Attribute attribute1) {
    if (attribute0.getSortOrder() == null || attribute0.getSortOrder() == 0) {
      return attribute0.getName().compareTo(attribute1.getName());
    }
    if (attribute1.getSortOrder() == null || attribute1.getSortOrder() == 0) {
      return attribute0.getName().compareTo(attribute1.getName());
    }

    return attribute0.getSortOrder() - attribute1.getSortOrder();
  }
  @Override
  public String execute() {
    Attribute attribute = attributeService.getAttribute(id);

    if (attribute != null) {
      attribute.setName(name);
      attribute.setValueType(valueType);
      attribute.setMandatory(mandatory);
      attribute.setDataElementAttribute(dataElementAttribute);
      attribute.setDataElementGroupAttribute(dataElementGroupAttribute);
      attribute.setIndicatorAttribute(indicatorAttribute);
      attribute.setIndicatorGroupAttribute(indicatorGroupAttribute);
      attribute.setOrganisationUnitAttribute(organisationUnitAttribute);
      attribute.setOrganisationUnitGroupAttribute(organisationUnitGroupAttribute);
      attribute.setUserAttribute(userAttribute);
      attribute.setUserGroupAttribute(userGroupAttribute);

      attributeService.updateAttribute(attribute);

      return SUCCESS;
    }

    return ERROR;
  }