/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToLocalDateConverter extends StringBasedConverter implements Converter<byte[], LocalDate> { @Override public LocalDate convert(byte[] source) { return LocalDate.parse(toString(source)); } }
/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToLocalTimeConverter extends StringBasedConverter implements Converter<byte[], LocalTime> { @Override public LocalTime convert(byte[] source) { return LocalTime.parse(toString(source)); } }
/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToZonedDateTimeConverter extends StringBasedConverter implements Converter<byte[], ZonedDateTime> { @Override public ZonedDateTime convert(byte[] source) { return ZonedDateTime.parse(toString(source)); } }
/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToDurationConverter extends StringBasedConverter implements Converter<byte[], Duration> { @Override public Duration convert(byte[] source) { return Duration.parse(toString(source)); } }
/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToLocalDateTimeConverter extends StringBasedConverter implements Converter<byte[], LocalDateTime> { @Override public LocalDateTime convert(byte[] source) { return LocalDateTime.parse(toString(source)); } }
/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToInstantConverter extends StringBasedConverter implements Converter<byte[], Instant> { @Override public Instant convert(byte[] source) { return Instant.parse(toString(source)); } }
@ReadingConverter static class LongToDateTimeConverter implements Converter<Long, Date> { @Override public Date convert(Long source) { if (source == null) { return null; } return new Date(source); } }
@ReadingConverter static class StringToDateTimeConverter implements Converter<String, Date> { @Override public Date convert(String source) { if (source == null) { return null; } return new Date(source); } } }
/** * @author Christoph Strobl * @since 1.7 */ @ReadingConverter static class BytesToStringConverter extends StringBasedConverter implements Converter<byte[], String> { @Override public String convert(byte[] source) { return toString(source); } }
/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToZoneIdConverter extends StringBasedConverter implements Converter<byte[], ZoneId> { @Override public ZoneId convert(byte[] source) { return ZoneId.of(toString(source)); } }
/** * @author Mark Paluch * @since 1.7 */ @ReadingConverter static class BytesToPeriodConverter extends StringBasedConverter implements Converter<byte[], Period> { @Override public Period convert(byte[] source) { return Period.parse(toString(source)); } }
/** * @author Christoph Strobl * @since 1.7 */ @ReadingConverter static class BytesToBooleanConverter extends StringBasedConverter implements Converter<byte[], Boolean> { @Override public Boolean convert(byte[] source) { if (ObjectUtils.isEmpty(source)) { return null; } String value = toString(source); return ("1".equals(value) || "true".equalsIgnoreCase(value)) ? Boolean.TRUE : Boolean.FALSE; } }
@ReadingConverter static class BytesToDateConverter extends StringBasedConverter implements Converter<byte[], Date> {
/** * @author Christoph Strobl * @since 1.7 */ @ReadingConverter static class BytesToNumberConverterFactory implements ConverterFactory<byte[], Number> { @Override public <T extends Number> Converter<byte[], T> getConverter(Class<T> targetType) { return new BytesToNumberConverter<>(targetType); } private static final class BytesToNumberConverter<T extends Number> extends StringBasedConverter implements Converter<byte[], T> { private final Class<T> targetType; public BytesToNumberConverter(Class<T> targetType) { this.targetType = targetType; } @Override public T convert(byte[] source) { if (ObjectUtils.isEmpty(source)) { return null; } return NumberUtils.parseNumber(toString(source), targetType); } } }
@ReadingConverter static final class BytesToEnumConverterFactory implements ConverterFactory<byte[], Enum<?>> {
@ReadingConverter enum DocumentToPointConverter implements Converter<Document, Point> { @ReadingConverter enum DocumentToBoxConverter implements Converter<Document, Box> { @ReadingConverter static enum DocumentToCircleConverter implements Converter<Document, Circle> { @ReadingConverter enum DocumentToSphereConverter implements Converter<Document, Sphere> { @ReadingConverter enum DocumentToPolygonConverter implements Converter<Document, Polygon> { @ReadingConverter enum DocumentToGeoJsonConverter implements Converter<Document, GeoJson> { INSTANCE;
@ReadingConverter enum DocumentToStringConverter implements Converter<Document, String> { @ReadingConverter enum StringToCurrencyConverter implements Converter<String, Currency> { @ReadingConverter enum LongToAtomicLongConverter implements Converter<Long, AtomicLong> { INSTANCE; @ReadingConverter enum IntegerToAtomicIntegerConverter implements Converter<Integer, AtomicInteger> { INSTANCE; @ReadingConverter enum BinaryToByteArrayConverter implements Converter<Binary, byte[]> { @ReadingConverter enum BsonTimestampToInstantConverter implements Converter<BsonTimestamp, Instant> {
@ReadingConverter private class DocumentToGenericMessageConverter implements Converter<Document, GenericMessage<?>> { DocumentToGenericMessageConverter() { super(); } @Override public GenericMessage<?> convert(Document source) { @SuppressWarnings("unchecked") Map<String, Object> headers = MongoDbMessageStore.this.converter.normalizeHeaders((Map<String, Object>) source.get("headers")); GenericMessage<?> message = new GenericMessage<>(MongoDbMessageStore.this.converter.extractPayload(source), headers); enhanceHeaders(message.getHeaders(), headers); return message; } }
@ReadingConverter private final class DocumentToMutableMessageConverter implements Converter<Document, MutableMessage<?>> { DocumentToMutableMessageConverter() { super(); } @Override public MutableMessage<?> convert(Document source) { @SuppressWarnings("unchecked") Map<String, Object> headers = MongoDbMessageStore.this.converter.normalizeHeaders((Map<String, Object>) source.get("headers")); Object payload = MongoDbMessageStore.this.converter.extractPayload(source); return (MutableMessage<?>) MutableMessageBuilder.withPayload(payload) .copyHeaders(headers) .build(); } }
@ReadingConverter public static class MessageReadConverter implements Converter<Document, Message<?>> { @Override @SuppressWarnings("unchecked") public Message<?> convert(Document source) { return MessageBuilder.withPayload(source.get("payload")) .copyHeaders((Map<String, ?>) source.get("headers")) .build(); } }