Skip to content

Commit 3333b55

Browse files
authored
Merge pull request #1154 from jqno/cleanup-vintage
Cleanup vintage
2 parents e8fe46c + 4e46cd0 commit 3333b55

40 files changed

+65
-1964
lines changed

equalsverifier-core/src/main/java/nl/jqno/equalsverifier/api/ConfiguredEqualsVerifier.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import nl.jqno.equalsverifier.Func.Func2;
1010
import nl.jqno.equalsverifier.internal.PrefabValuesApi;
1111
import nl.jqno.equalsverifier.internal.instantiation.UserPrefabValueCaches;
12-
import nl.jqno.equalsverifier.internal.instantiation.vintage.FactoryCache;
1312
import nl.jqno.equalsverifier.internal.reflection.PackageScanOptions;
1413
import nl.jqno.equalsverifier.internal.reflection.PackageScanner;
1514
import nl.jqno.equalsverifier.internal.util.FieldToPrefabValues;
@@ -28,7 +27,6 @@ public final class ConfiguredEqualsVerifier implements EqualsVerifierApi<Void> {
2827
private final EnumSet<Warning> warningsToSuppress;
2928
private final Set<Mode> modesToSet;
3029
private final UserPrefabValueCaches userPrefabs;
31-
private final FactoryCache factoryCache;
3230
private boolean usingGetClass;
3331
private Function<String, String> fieldnameToGetter;
3432
private final Objenesis objenesis = new ObjenesisStd();
@@ -39,22 +37,19 @@ public final class ConfiguredEqualsVerifier implements EqualsVerifierApi<Void> {
3937
* @since 3.0
4038
*/
4139
public ConfiguredEqualsVerifier() {
42-
this(EnumSet
43-
.noneOf(Warning.class), new HashSet<>(), new UserPrefabValueCaches(), new FactoryCache(), false, null);
40+
this(EnumSet.noneOf(Warning.class), new HashSet<>(), new UserPrefabValueCaches(), false, null);
4441
}
4542

4643
/** Private constructor. For internal use only. */
4744
private ConfiguredEqualsVerifier(
4845
EnumSet<Warning> warningsToSuppress,
4946
Set<Mode> modes,
5047
UserPrefabValueCaches userPrefabs,
51-
FactoryCache factoryCache,
5248
boolean usingGetClass,
5349
Function<String, String> fieldnameToGetter) {
5450
this.warningsToSuppress = warningsToSuppress;
5551
this.modesToSet = modes;
5652
this.userPrefabs = userPrefabs;
57-
this.factoryCache = factoryCache;
5853
this.usingGetClass = usingGetClass;
5954
this.fieldnameToGetter = fieldnameToGetter;
6055
}
@@ -71,7 +66,6 @@ public ConfiguredEqualsVerifier copy() {
7166
return new ConfiguredEqualsVerifier(EnumSet.copyOf(warningsToSuppress),
7267
new HashSet<>(modesToSet),
7368
userPrefabs.copy(),
74-
factoryCache.copy(),
7569
usingGetClass,
7670
fieldnameToGetter);
7771
}
@@ -114,15 +108,15 @@ public <S> ConfiguredEqualsVerifier withResettablePrefabValues(
114108
@Override
115109
@CheckReturnValue
116110
public <S> ConfiguredEqualsVerifier withGenericPrefabValues(Class<S> otherType, Func1<?, S> factory) {
117-
PrefabValuesApi.addGenericPrefabValues(userPrefabs, factoryCache, otherType, factory);
111+
PrefabValuesApi.addGenericPrefabValues(userPrefabs, otherType, factory);
118112
return this;
119113
}
120114

121115
/** {@inheritDoc} */
122116
@Override
123117
@CheckReturnValue
124118
public <S> ConfiguredEqualsVerifier withGenericPrefabValues(Class<S> otherType, Func2<?, ?, S> factory) {
125-
PrefabValuesApi.addGenericPrefabValues(userPrefabs, factoryCache, otherType, factory);
119+
PrefabValuesApi.addGenericPrefabValues(userPrefabs, otherType, factory);
126120
return this;
127121
}
128122

@@ -156,7 +150,6 @@ public <T> SingleTypeEqualsVerifierApi<T> forClass(Class<T> type) {
156150
EnumSet.copyOf(warningsToSuppress),
157151
new HashSet<>(modesToSet),
158152
userPrefabs.copy(),
159-
factoryCache.copy(),
160153
objenesis,
161154
usingGetClass,
162155
fieldnameToGetter);

equalsverifier-core/src/main/java/nl/jqno/equalsverifier/api/SingleTypeEqualsVerifierApi.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import nl.jqno.equalsverifier.internal.checkers.*;
1212
import nl.jqno.equalsverifier.internal.exceptions.MessagingException;
1313
import nl.jqno.equalsverifier.internal.instantiation.UserPrefabValueCaches;
14-
import nl.jqno.equalsverifier.internal.instantiation.vintage.FactoryCache;
1514
import nl.jqno.equalsverifier.internal.reflection.FieldCache;
1615
import nl.jqno.equalsverifier.internal.reflection.kotlin.KotlinProbe;
1716
import nl.jqno.equalsverifier.internal.reflection.kotlin.KotlinScreen;
@@ -38,7 +37,6 @@ public class SingleTypeEqualsVerifierApi<T> implements EqualsVerifierApi<T> {
3837
private boolean hasRedefinedSuperclass = false;
3938
private Class<? extends T> redefinedSubclass = null;
4039
private UserPrefabValueCaches userPrefabs = new UserPrefabValueCaches();
41-
private FactoryCache factoryCache = new FactoryCache();
4240
private FieldCache fieldCache = new FieldCache();
4341
private CachedHashCodeInitializer<T> cachedHashCodeInitializer = CachedHashCodeInitializer.passthrough();
4442
private Function<String, String> fieldnameToGetter = null;
@@ -80,7 +78,6 @@ private SingleTypeEqualsVerifierApi(Class<T> type, Objenesis objenesis) {
8078
* @param warningsToSuppress A list of warnings to suppress in {@code EqualsVerifier}.
8179
* @param modes A set of modes in which {@code EqualsVerifier} should operate.
8280
* @param userPrefabs Prefab values provided by the user.
83-
* @param factoryCache Factories that can be used to create values.
8481
* @param objenesis To instantiate non-record classes.
8582
* @param usingGetClass Whether {@code getClass} is used in the implementation of the {@code equals} method,
8683
* instead of an {@code instanceof} check.
@@ -92,15 +89,13 @@ private SingleTypeEqualsVerifierApi(Class<T> type, Objenesis objenesis) {
9289
EnumSet<Warning> warningsToSuppress,
9390
Set<Mode> modes,
9491
UserPrefabValueCaches userPrefabs,
95-
FactoryCache factoryCache,
9692
Objenesis objenesis,
9793
boolean usingGetClass,
9894
Function<String, String> converter) {
9995
this(type, objenesis);
10096
this.warningsToSuppress = EnumSet.copyOf(warningsToSuppress);
10197
this.modesToSet = new HashSet<>(modes);
10298
this.userPrefabs = userPrefabs;
103-
this.factoryCache = this.factoryCache.merge(factoryCache);
10499
this.usingGetClass = usingGetClass;
105100
this.fieldnameToGetter = converter;
106101
}
@@ -182,15 +177,15 @@ public <S> SingleTypeEqualsVerifierApi<T> withPrefabValuesForField(String fieldN
182177
@Override
183178
@CheckReturnValue
184179
public <S> SingleTypeEqualsVerifierApi<T> withGenericPrefabValues(Class<S> otherType, Func1<?, S> factory) {
185-
PrefabValuesApi.addGenericPrefabValues(userPrefabs, factoryCache, otherType, factory);
180+
PrefabValuesApi.addGenericPrefabValues(userPrefabs, otherType, factory);
186181
return this;
187182
}
188183

189184
/** {@inheritDoc} */
190185
@Override
191186
@CheckReturnValue
192187
public <S> SingleTypeEqualsVerifierApi<T> withGenericPrefabValues(Class<S> otherType, Func2<?, ?, S> factory) {
193-
PrefabValuesApi.addGenericPrefabValues(userPrefabs, factoryCache, otherType, factory);
188+
PrefabValuesApi.addGenericPrefabValues(userPrefabs, otherType, factory);
194189
return this;
195190
}
196191

@@ -467,7 +462,7 @@ private void performVerification() {
467462
Validations.validateClassCanBeVerified(type);
468463

469464
Configuration<T> config = buildConfig();
470-
var context = new Context<T>(config, userPrefabs, factoryCache, fieldCache, objenesis);
465+
var context = new Context<T>(config, userPrefabs, fieldCache, objenesis);
471466
Validations
472467
.validateProcessedAnnotations(
473468
type,

equalsverifier-core/src/main/java/nl/jqno/equalsverifier/internal/PrefabValuesApi.java

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
package nl.jqno.equalsverifier.internal;
22

3-
import static nl.jqno.equalsverifier.internal.instantiation.vintage.factories.Factories.simple;
4-
53
import java.lang.reflect.Field;
64
import java.lang.reflect.InaccessibleObjectException;
75
import java.util.function.Supplier;
86

97
import nl.jqno.equalsverifier.Func.Func1;
108
import nl.jqno.equalsverifier.Func.Func2;
9+
import nl.jqno.equalsverifier.internal.instantiation.InstanceCreator;
1110
import nl.jqno.equalsverifier.internal.instantiation.UserPrefabValueCaches;
12-
import nl.jqno.equalsverifier.internal.instantiation.vintage.FactoryCache;
13-
import nl.jqno.equalsverifier.internal.instantiation.vintage.factories.PrefabValueFactory;
14-
import nl.jqno.equalsverifier.internal.instantiation.vintage.reflection.ObjectAccessor;
15-
import nl.jqno.equalsverifier.internal.reflection.FieldCache;
16-
import nl.jqno.equalsverifier.internal.reflection.Tuple;
17-
import nl.jqno.equalsverifier.internal.reflection.TypeTag;
11+
import nl.jqno.equalsverifier.internal.reflection.*;
1812
import nl.jqno.equalsverifier.internal.util.Validations;
1913
import org.objenesis.Objenesis;
2014

@@ -35,7 +29,9 @@ public static <T> void addPrefabValues(
3529
}
3630
else {
3731
try {
38-
T redCopy = ObjectAccessor.of(red).copy(objenesis);
32+
@SuppressWarnings("unchecked")
33+
ClassProbe<T> probe = ClassProbe.of((Class<T>) red.getClass());
34+
T redCopy = new InstanceCreator<>(probe, objenesis).copy(red);
3935
prefabs.register(otherType, red, blue, redCopy);
4036
}
4137
catch (InaccessibleObjectException ignored) {
@@ -76,7 +72,9 @@ public static <T> void addPrefabValuesForField(
7672
}
7773
else {
7874
try {
79-
T redCopy = ObjectAccessor.of(red).copy(objenesis);
75+
@SuppressWarnings("unchecked")
76+
ClassProbe<T> probe = ClassProbe.of((Class<T>) red.getClass());
77+
T redCopy = new InstanceCreator<>(probe, objenesis).copy(red);
8078
fieldCache.put(f.getName(), tag, new Tuple<>(red, blue, redCopy));
8179
}
8280
catch (InaccessibleObjectException ignored) {
@@ -87,30 +85,19 @@ public static <T> void addPrefabValuesForField(
8785

8886
public static <T> void addGenericPrefabValues(
8987
UserPrefabValueCaches prefabs,
90-
FactoryCache factoryCache,
9188
Class<T> otherType,
9289
Func1<?, T> factory) {
9390
Validations.validateNotNull(factory, "factory is null.");
94-
addGenericPrefabValueFactory(factoryCache, otherType, simple(factory, null), 1);
91+
Validations.validateGenericPrefabValues(otherType, 1);
9592
prefabs.registerGeneric(otherType, factory);
9693
}
9794

9895
public static <T> void addGenericPrefabValues(
9996
UserPrefabValueCaches prefabs,
100-
FactoryCache factoryCache,
10197
Class<T> otherType,
10298
Func2<?, ?, T> factory) {
10399
Validations.validateNotNull(factory, "factory is null.");
104-
addGenericPrefabValueFactory(factoryCache, otherType, simple(factory, null), 2);
100+
Validations.validateGenericPrefabValues(otherType, 2);
105101
prefabs.registerGeneric(otherType, factory);
106102
}
107-
108-
private static <T> void addGenericPrefabValueFactory(
109-
FactoryCache factoryCache,
110-
Class<T> otherType,
111-
PrefabValueFactory<T> factory,
112-
int arity) {
113-
Validations.validateGenericPrefabValues(otherType, factory, arity);
114-
factoryCache.put(otherType, factory);
115-
}
116103
}

equalsverifier-core/src/main/java/nl/jqno/equalsverifier/internal/instantiation/vintage/FactoryCache.java

Lines changed: 0 additions & 101 deletions
This file was deleted.

0 commit comments

Comments
 (0)