From 4e9b5030550b77ad6d3affb1efecdf8722f18b10 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Sun, 29 Sep 2024 17:46:56 +0200 Subject: [PATCH] Polish OverrideMetadata --- .../bean/override/OverrideMetadata.java | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/test/context/bean/override/OverrideMetadata.java b/spring-test/src/main/java/org/springframework/test/context/bean/override/OverrideMetadata.java index 5bf8075608c..0ab99f6f0b9 100644 --- a/spring-test/src/main/java/org/springframework/test/context/bean/override/OverrideMetadata.java +++ b/spring-test/src/main/java/org/springframework/test/context/bean/override/OverrideMetadata.java @@ -44,13 +44,14 @@ import static org.springframework.core.annotation.MergedAnnotations.SearchStrate *
WARNING: implementations are used as a cache key and * must implement proper {@code equals()} and {@code hashCode()} methods. * - *
Specific implementations of metadata can have state to be used during - * override {@linkplain #createOverride(String, BeanDefinition, Object) - * instance creation} — for example, based on further parsing of the + *
Concrete implementations of {@code OverrideMetadata} can store state to use
+ * during override {@linkplain #createOverride(String, BeanDefinition, Object)
+ * instance creation} — for example, based on further processing of the
* annotation or the annotated field.
*
* @author Simon Baslé
* @author Stephane Nicoll
+ * @author Sam Brannen
* @since 6.2
*/
public abstract class OverrideMetadata {
@@ -67,6 +68,7 @@ public abstract class OverrideMetadata {
protected OverrideMetadata(Field field, ResolvableType beanType, @Nullable String beanName,
BeanOverrideStrategy strategy) {
+
this.field = field;
this.beanType = beanType;
this.beanName = beanName;
@@ -74,18 +76,19 @@ public abstract class OverrideMetadata {
}
/**
- * Parse the given {@code testClass} and build the corresponding list of
- * bean {@code OverrideMetadata}.
- * @param testClass the class to parse
+ * Process the given {@code testClass} and build the corresponding list of
+ * {@code OverrideMetadata} derived from {@link BeanOverride @BeanOverride}
+ * fields in the test class and its type hierarchy.
+ * @param testClass the test class to process
* @return a list of {@code OverrideMetadata}
*/
public static List The default is not to track, but this can be overridden in subclasses.
+ * Optionally track objects created by this {@code OverrideMetadata}.
+ * The default implementation does not track the supplied instance, but
+ * this can be overridden in subclasses as appropriate.
* @param override the bean override instance to track
* @param trackingBeanRegistry the registry in which trackers can
* optionally be registered