@Override
  protected String getJsonRepresentation(TravelExpenseReport travelExpenseReport) {
    StringWriter writer = new StringWriter();
    JsonGenerator jg = jsonGeneratorFactory.createGenerator(writer);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    jg.writeStartObject()
        .write("status", travelExpenseReport.getStatus().toString())
        .write("employee", "/employees/" + travelExpenseReport.getEmployee().getId())
        .write("debitor", "/companies/" + travelExpenseReport.getDebitor().getId());

    if (travelExpenseReport.getSubmissionDate() != null) {
      jg.write("submissionDate", sdf.format(travelExpenseReport.getSubmissionDate()));
    }
    if (travelExpenseReport.getProject() != null) {
      jg.write("project", "/projects/" + travelExpenseReport.getProject().getId());
    }
    if (travelExpenseReport.getId() != null) {
      jg.write("id", travelExpenseReport.getId());
    }
    jg.writeEnd().close();
    return writer.toString();
  }