@Override
 public Calendar getSubjectBirthDate() {
   return request.getSubjectInformations().getSubjectBirthDate();
 }
 @Override
 public Map<String, Object> getSpecificFields(EdemandeService service) {
   Map<String, Object> result = new HashMap<String, Object>();
   result.put("firstRequest", request.getSubjectInformations().getSubjectFirstRequest());
   result.put(
       "taxHouseholdCityCode",
       request.getTaxHouseholdCityArray().length == 0
           ? ""
           : request.getTaxHouseholdCityArray(0).getName());
   result.put(
       "taxHouseholdCityPrecision",
       StringUtils.defaultString(request.getTaxHouseholdCityPrecision()));
   result.put("taxHouseholdIncome", request.getTaxHouseholdIncome());
   result.put("hasCROUSHelp", request.getHasCROUSHelp());
   result.put("hasRegionalCouncilHelp", request.getHasRegionalCouncilHelp());
   result.put("hasEuropeHelp", request.getHasEuropeHelp());
   result.put("hasOtherHelp", request.getHasOtherHelp());
   result.put("AlevelsDate", request.getALevelsInformations().getAlevelsDate());
   result.put(
       "AlevelsType",
       service.translate(
           "sgr.property.alevels."
               + request.getALevelsInformations().getAlevels().toString().toLowerCase()));
   result.put(
       "currentStudiesType",
       StringUtils.defaultIfEmpty(
           request.getCurrentStudiesInformations().getOtherStudiesLabel(),
           service.translate(
               "sgr.property.currentStudiesDiploma."
                   + request
                       .getCurrentStudiesInformations()
                       .getCurrentStudiesDiploma()
                       .toString())));
   result.put(
       "currentStudiesLevel",
       service.translate(
           "sgr.property.currentStudiesLevel."
               + request.getCurrentStudiesInformations().getCurrentStudiesLevel().toString()));
   result.put("sandwichCourses", request.getCurrentStudiesInformations().getSandwichCourses());
   result.put("abroadInternship", request.getCurrentStudiesInformations().getAbroadInternship());
   result.put(
       "abroadInternshipStartDate",
       service.formatDate(request.getCurrentStudiesInformations().getAbroadInternshipStartDate()));
   result.put(
       "abroadInternshipEndDate",
       service.formatDate(request.getCurrentStudiesInformations().getAbroadInternshipEndDate()));
   result.put(
       "currentSchoolName",
       StringUtils.defaultIfEmpty(
           request.getCurrentSchool().getCurrentSchoolNamePrecision(),
           request.getCurrentSchool().getCurrentSchoolNameArray().length == 0
               ? ""
               : request.getCurrentSchool().getCurrentSchoolNameArray(0).getName()));
   result.put("currentSchoolAddress", request.getCurrentSchool().getCurrentSchoolAddress());
   result.put(
       "abroadInternshipSchoolName",
       request.getCurrentStudiesInformations().getAbroadInternship()
           ? request.getCurrentStudiesInformations().getAbroadInternshipSchoolName()
           : "");
   result.put(
       "abroadInternshipSchoolCountry",
       request.getCurrentStudiesInformations().getAbroadInternship()
           ? service.translate(
               "sgr.property.abroadInternshipSchoolCountry."
                   + request.getCurrentStudiesInformations().getAbroadInternshipSchoolCountry())
           : "");
   result.put(
       "distance", service.translate("sgr.property.distance." + request.getDistance().toString()));
   return result;
 }