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; } }
@Generated(value = "com.sun.tools.xjc.Driver", date = "2018-04-24T11:17:38-05:00", comments = "JAXB RI v2.2.11") public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) { { FuzzyDate.Year theYear; theYear = this.getYear(); strategy.appendField(locator, this, "year", buffer, theYear); } { FuzzyDate.Month theMonth; theMonth = this.getMonth(); strategy.appendField(locator, this, "month", buffer, theMonth); } { FuzzyDate.Day theDay; theDay = this.getDay(); strategy.appendField(locator, this, "day", buffer, theDay); } return buffer; }
public static boolean isEmpty(org.orcid.jaxb.model.common_v2.FuzzyDate date) { if (date == null) return true; if (!isEmpty(date.getDay())) return false; if (!isEmpty(date.getMonth())) return false; if (!isEmpty(date.getYear())) return false; return true; }
@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 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); } }
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; }
dateSortString += "-00"; if (!PojoUtil.isEmpty(startDate.getDay())) { dateSortString += "-" + startDate.getDay().getValue(); } else { dateSortString += "-00"; if (!PojoUtil.isEmpty(endDate.getDay())) { dateSortString += "-" + endDate.getDay().getValue(); } else { dateSortString += "-00"; if (!PojoUtil.isEmpty(startDate.getDay())) { dateSortString += "-" + startDate.getDay().getValue(); } else { dateSortString += "-00";