@Override public Year parse(String text, Locale locale) throws ParseException { return Year.parse(text); }
@Override public Year parse(String text, Locale locale) throws ParseException { return Year.parse(text); }
@Override protected Year parse(@Nullable final String input) throws Exception { return Year.parse(input); } }
@Override protected Year deserialize(String key, DeserializationContext ctxt) throws IOException { try { return Year.parse(key, FORMATTER); } catch (DateTimeException e) { return _handleDateTimeException(ctxt, Year.class, e, key); } } }
@Override protected Year deserialize(String key, DeserializationContext ctxt) throws IOException { try { return Year.parse(key, FORMATTER); } catch (DateTimeException e) { return _handleDateTimeException(ctxt, Year.class, e, key); } } }
@Override public Year deserialize(JsonParser parser, DeserializationContext context) throws IOException { if (formatter == null) { return Year.of(parser.getValueAsInt()); } return Year.parse(parser.getValueAsString(), formatter); } }
@Override public Year deserialize(JsonParser parser, DeserializationContext context) throws IOException { JsonToken t = parser.getCurrentToken(); if (t == JsonToken.VALUE_STRING) { String string = parser.getValueAsString().trim(); try { if (_formatter == null) { return Year.parse(string); } return Year.parse(string, _formatter); } catch (DateTimeException e) { return _handleDateTimeException(context, e, string); } } if (t == JsonToken.VALUE_NUMBER_INT) { return Year.of(parser.getIntValue()); } if (t == JsonToken.VALUE_EMBEDDED_OBJECT) { return (Year) parser.getEmbeddedObject(); } if (parser.hasToken(JsonToken.START_ARRAY)){ return _deserializeFromArray(parser, context); } return _handleUnexpectedToken(context, parser, JsonToken.VALUE_STRING, JsonToken.VALUE_NUMBER_INT); } }
@Override public Year deserialize(JsonParser parser, DeserializationContext context) throws IOException { JsonToken t = parser.getCurrentToken(); if (t == JsonToken.VALUE_STRING) { String string = parser.getValueAsString().trim(); try { if (_formatter == null) { return Year.parse(string); } return Year.parse(string, _formatter); } catch (DateTimeException e) { return _handleDateTimeException(context, e, string); } } if (t == JsonToken.VALUE_NUMBER_INT) { return Year.of(parser.getIntValue()); } if (t == JsonToken.VALUE_EMBEDDED_OBJECT) { return (Year) parser.getEmbeddedObject(); } if (parser.hasToken(JsonToken.START_ARRAY)){ return _deserializeFromArray(parser, context); } return _handleUnexpectedToken(context, parser, JsonToken.VALUE_STRING, JsonToken.VALUE_NUMBER_INT); } }
final Year y = Year.parse(str); return GregorianCalendar.from(y.atDay(1).atStartOfDay(ZoneId.systemDefault())); } catch (final DateTimeParseException e) {
@Override public Year parse(final String val) { return Year.parse(val); } }
@Override public Year parse(final String val) { return Year.parse(val); } }
@Override public Year parse(final String val) { return Year.parse(val); } }
@Override public Year parse(String value) { return Year.parse(value); }
/** * <p>Tells this generator to produce values within a specified * {@linkplain InRange#min() minimum} and/or {@linkplain InRange#max() * maximum}, inclusive, with uniform distribution.</p> * * <p>If an endpoint of the range is not specified, the generator will use * Years with values of either {@code Year#MIN_VALUE} or * {@code Year#MAX_VALUE} as appropriate.</p> * * <p>{@link InRange#format()} describes * {@linkplain DateTimeFormatter#ofPattern(String) how the generator is to * interpret the range's endpoints}.</p> * * @param range annotation that gives the range's constraints */ public void configure(InRange range) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(range.format()); if (!defaultValueOf(InRange.class, "min").equals(range.min())) min = Year.parse(range.min(), formatter); if (!defaultValueOf(InRange.class, "max").equals(range.max())) max = Year.parse(range.max(), formatter); if (min.compareTo(max) > 0) throw new IllegalArgumentException(String.format("bad range, %s > %s", range.min(), range.max())); }
@Property public void shouldHold(@InRange(max = "2342", format = "yyyy") Year y) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy"); assertThat(y, lessThanOrEqualTo(Year.parse("2342", formatter))); } }
@Property public void shouldHold(@InRange(min = "1223", format = "yyyy") Year y) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy"); assertThat(y, greaterThanOrEqualTo(Year.parse("1223", formatter))); } }
@Override public Year convert(CharSequence in, Context context) throws Exception { if (in == null || in.length() == 0) return null; return Year.parse(in, dateTimeFormatter); } }
@Override public Year convert(CharSequence in, Context context) throws Exception { if (in == null || in.length() == 0) return null; return Year.parse(in, dateTimeFormatter); } }
@Override protected Year deserialize(String key, DeserializationContext ctxt) throws IOException { try { return Year.parse(key, FORMATTER); } catch (DateTimeException e) { return _handleDateTimeException(ctxt, Year.class, e, key); } } }