public static boolean isEmpty(org.orcid.jaxb.model.common_v2.Day day) { if (day==null) return true; return isEmpty(day.getValue()); }
@Override public String toString() { StringBuilder builder = new StringBuilder(year.getValue()); if (month != null) { builder.append("-"); builder.append(month.getValue()); } if (day != null) { builder.append("-"); builder.append(day.getValue()); } return builder.toString(); }
@Override public void mapAtoB(FuzzyDate fuzzyDate, StartDateEntity entity, MappingContext context) { if (fuzzyDate.getYear() != null) { entity.setYear(Integer.valueOf(fuzzyDate.getYear().getValue())); } else { entity.setYear(null); } if (fuzzyDate.getMonth() != null) { entity.setMonth(Integer.valueOf(fuzzyDate.getMonth().getValue())); } else { entity.setMonth(null); } if (fuzzyDate.getDay() != null) { entity.setDay(Integer.valueOf(fuzzyDate.getDay().getValue())); } else { entity.setDay(null); } }
@Override public void mapAtoB(FuzzyDate fuzzyDate, EndDateEntity entity, MappingContext context) { if (fuzzyDate.getYear() != null) { entity.setYear(Integer.valueOf(fuzzyDate.getYear().getValue())); } else { entity.setYear(null); } if (fuzzyDate.getMonth() != null) { entity.setMonth(Integer.valueOf(fuzzyDate.getMonth().getValue())); } else { entity.setMonth(null); } if (fuzzyDate.getDay() != null) { entity.setDay(Integer.valueOf(fuzzyDate.getDay().getValue())); } else { entity.setDay(null); } }
private String getDateString(FuzzyDate fuzzyDate) { String year = fuzzyDate.getYear() != null ? fuzzyDate.getYear().getValue() : null; String month = fuzzyDate.getMonth() != null ? fuzzyDate.getMonth().getValue() : null; String day = fuzzyDate.getDay() != null ? fuzzyDate.getDay().getValue() : null; if (day != null) { return year + "-" + month + "-" + day; } if (month != null) { return year + "-" + month; } if (year != null) { return year; } return null; } }
private void validateFuzzyDate(FuzzyDate fuzzyDate) { String dateString = getDateString(fuzzyDate); DateTimeFormatter[] formatters = { new DateTimeFormatterBuilder().appendPattern("yyyy").parseDefaulting(ChronoField.MONTH_OF_YEAR, 1).parseDefaulting(ChronoField.DAY_OF_MONTH, 1) .toFormatter(), new DateTimeFormatterBuilder().appendPattern("yyyy-MM").parseDefaulting(ChronoField.DAY_OF_MONTH, 1).toFormatter(), new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd").parseStrict().toFormatter() }; boolean valid = false; for (DateTimeFormatter formatter : formatters) { try { LocalDate localDate = LocalDate.parse(dateString, formatter); if (PojoUtil.isEmpty(fuzzyDate.getDay()) || localDate.getDayOfMonth() == Integer.parseInt(fuzzyDate.getDay().getValue())) { valid = true; } } catch (DateTimeParseException e) { } } if (!valid) { Map<String, String> params = new HashMap<>(); params.put("dateString", dateString); throw new InvalidFuzzyDateException(params); } }
Integer.valueOf(day.getValue()); } catch (NumberFormatException n) { Map<String, String> params = new HashMap<String, String>(); if (day.getValue().length() != 2) { throw new OrcidValidationException("Invalid day " + day.getValue() + " please specify a two digits value"); boolean isDayEmpty = (day == null || day.getValue() == null) ? true : false; if (isYearEmpty && (!isMonthEmpty || !isDayEmpty)) { throw new OrcidValidationException("Invalid date, please specify a year element");
public static String createDateSortString(org.orcid.jaxb.model.common_v2.FuzzyDate start, org.orcid.jaxb.model.common_v2.FuzzyDate end) { String year = "0"; String month = "0"; String day = "0"; if (!isEmpty(start) && !isEmpty(start.getYear())) { year = start.getYear().getValue(); if (!PojoUtil.isEmpty(start.getMonth())) month = start.getMonth().getValue(); if (!PojoUtil.isEmpty(start.getDay())) day = start.getDay().getValue(); } else if (!isEmpty(end) && !isEmpty(end.getYear())) { year = end.getYear().getValue(); if (!PojoUtil.isEmpty(end.getMonth())) month = end.getMonth().getValue(); if (!PojoUtil.isEmpty(end.getDay())) day = end.getDay().getValue(); } return year + "-" + month + '-' + day; }
year = Integer.parseInt(work.getPublicationDate().getYear().getValue()); month = Integer.parseInt(work.getPublicationDate().getMonth().getValue()); day = Integer.parseInt(work.getPublicationDate().getDay().getValue()); } catch (Exception e) {