/** * Converts a MySQL {@code YEAR} value to a {@link Year} object. * * @param inputStream the binary stream containing the raw binlog event data for the value * @return the {@link Year} object * @throws IOException if there is an error reading from the binlog event data */ protected static Serializable deserializeYear(ByteArrayInputStream inputStream) throws IOException { return Year.of(1900 + inputStream.readInteger(1)); }
@Override public Year fromString(final String str) { try { return Year.of(Integer.parseInt(str)); } catch (final NumberFormatException ex) { final ConversionException exception = new ConversionException("Cannot parse value as year", ex); exception.add("value", str); throw exception; } } }
@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); } }
@Test(expected = IllegalArgumentException.class) public void remainderOnIncrementTypeExceedsMaximumYear() { Year from = Year.of(Year.MIN_VALUE); Year to = Year.of(Year.MAX_VALUE - 0); assertNotEquals(0, (to.getValue() - from.getValue()) % 10); // Maximum Year range is not divisible by 10 assertNotNull(new TemporalValueRange<>(from, to, 1, ChronoUnit.DECADES)); }
@Test public void fullYearRange() { TemporalUnit unit = ChronoUnit.YEARS; Year from = Year.of(Year.MIN_VALUE); Year to = Year.of(Year.MAX_VALUE); int increment = 1; TemporalValueRange<Year> range = new TemporalValueRange<>(from, to, increment, unit); assertEquals(from.until(to, unit), range.getSize() * increment); assertTrue(range.contains(from)); assertFalse(range.contains(to)); }
@Override public Year getNullableResult(ResultSet rs, int columnIndex) throws SQLException { int year = rs.getInt(columnIndex); return year == 0 && rs.wasNull() ? null : Year.of(year); }
@Override public Year getNullableResult(ResultSet rs, String columnName) throws SQLException { int year = rs.getInt(columnName); return year == 0 && rs.wasNull() ? null : Year.of(year); }
@Override public <I extends InputShim> Year read(final KryoShim<I, ?> kryo, final I input, final Class<Year> clazz) { return Year.of(input.readInt()); } }
@Override public Year toBeanType(Object value) { if (value instanceof Year) return (Year) value; if (value == null) return null; return Year.of(BasicTypeConverter.toInteger(value)); }
@Override public Year read(DataReader dataReader) throws SQLException { Integer value = dataReader.getInt(); return (value == null) ? null : Year.of(value); }
@Override public Year getRandomValue() { int randomYear = yearRandomizer.getRandomValue(); return Year.of(randomYear); } }
/** * Protected setter to allow binding the expiration date. * * @param date */ protected void setExpirationDate(LocalDate date) { this.expiryYear = Year.of(date.getYear()); this.expiryMonth = date.getMonth(); } }
@EventListener public void init(ApplicationReadyEvent event) { if (repository.count() > 0) { return; } CreditCardNumber number = new CreditCardNumber("1234123412341234"); CreditCard creditCard = new CreditCard(number, "Oliver Gierke", Month.DECEMBER, Year.of(2099)); creditCard = repository.save(creditCard); LOG.info("Credit card {} created!", creditCard); } }