/**
   * Sets modifying and creating auditioner. Creating auditioner is only set on new auditables.
   *
   * @param auditable
   * @return
   */
  private String touchAuditor(final DefaultAuditable<String, ?> auditable, boolean isNew) {

    String auditor = AuthContextHolder.getAuthUserDisplay();

    if (isNew) {

      auditable.setCreatedBy(auditor);

      if (!modifyOnCreation) {
        return auditor;
      }
    }

    auditable.setLastModifiedBy(auditor);
    auditable.setDataGroup(DATA_GROUP.get());

    return auditor;
  }
  /**
   * Touches the auditable regarding modification and creation date. Creation date is only set on
   * new auditables.
   *
   * @param auditable
   * @return
   */
  private Date touchDate(final DefaultAuditable<String, ?> auditable, boolean isNew) {

    Date now = DateUtils.currentDate();

    if (isNew) {
      if (auditable.getCreatedDate() == null) {
        auditable.setCreatedDate(now);
      }

      if (!modifyOnCreation) {
        return now;
      }
    }

    auditable.setLastModifiedDate(now);

    return now;
  }