From 9b9508a35f4126cf9569dc1caf79c0b753f20fd9 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 29 Apr 2024 11:28:09 +0200 Subject: [PATCH] Polishing. Fix since version. Update Javadoc. Adjust visibility for subclassing usage. See #1781 --- .../MappingRelationalConverter.java | 33 +++++++++++-------- .../core/conversion/RowDocumentAccessor.java | 1 - 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/MappingRelationalConverter.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/MappingRelationalConverter.java index 141de911..f8173228 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/MappingRelationalConverter.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/MappingRelationalConverter.java @@ -878,7 +878,7 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl * * @param */ - interface ValueConverter { + protected interface ValueConverter { Object convert(T source, TypeInformation typeHint); @@ -890,7 +890,7 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl * * @param */ - interface ContainerValueConverter { + protected interface ContainerValueConverter { Object convert(ConversionContext context, T source, TypeInformation typeHint); @@ -899,7 +899,9 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl } /** - * @since 3.4.3 + * Projecting variant of {@link ConversionContext} applying mapping-metadata rules from the related entity. + * + * @since 3.2 */ protected class ProjectingConversionContext extends DefaultConversionContext { @@ -993,10 +995,19 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl */ ConversionContext withPath(ObjectPath currentPath); + /** + * @return the current {@link ObjectPath}. Can be {@link ObjectPath#ROOT} for top-level contexts. + */ ObjectPath getPath(); + /** + * @return the associated conversions. + */ CustomConversions getCustomConversions(); + /** + * @return source {@link RelationalConverter}. + */ RelationalConverter getSourceConverter(); } @@ -1082,6 +1093,7 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl private final RowDocumentAccessor accessor; private final SpELExpressionEvaluator evaluator; private final SpELContext spELContext; + private final RowDocument document; /** * Creates a new {@link RelationalPropertyValueProvider} for the given source and {@link SpELExpressionEvaluator}. @@ -1100,6 +1112,7 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl this.accessor = accessor; this.evaluator = evaluator; this.spELContext = spELContext; + this.document = accessor.getDocument(); } @Override @@ -1128,7 +1141,7 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl @Override public Object getValue(AggregatePath path) { - Object value = accessor.getDocument().get(path.getColumnInfo().alias().getReference()); + Object value = document.get(path.getColumnInfo().alias().getReference()); if (value == null) { return null; @@ -1139,12 +1152,12 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl @Override public boolean hasValue(AggregatePath path) { - return accessor.getDocument().get(path.getColumnInfo().alias().getReference()) != null; + return document.get(path.getColumnInfo().alias().getReference()) != null; } @Override public boolean hasValue(SqlIdentifier identifier) { - return accessor().getDocument().get(identifier.getReference()) != null; + return document.get(identifier.getReference()) != null; } @Override @@ -1152,14 +1165,6 @@ public class MappingRelationalConverter extends AbstractRelationalConverter impl return context == this.context ? this : new DocumentValueProvider(context, accessor, evaluator, spELContext); } - public ConversionContext context() { - return context; - } - - public RowDocumentAccessor accessor() { - return accessor; - } - } /** diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/RowDocumentAccessor.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/RowDocumentAccessor.java index 2f2c6858..f475800b 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/RowDocumentAccessor.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/RowDocumentAccessor.java @@ -60,7 +60,6 @@ public class RowDocumentAccessor { * @param source */ public void putAll(RowDocument source) { - document.putAll(source); }