/**
   * 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;
  }