Skip to content

Commit a2d323a

Browse files
Write documentation for the DefaultValueCustomizer inner class.
1 parent 9e02a1c commit a2d323a

File tree

1 file changed

+35
-24
lines changed

1 file changed

+35
-24
lines changed

testutil/src/main/java/org/spine3/test/NullToleranceTest.java

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -574,44 +574,55 @@ public NullToleranceTest build() {
574574
}
575575

576576
private void addDefaultTypeValues() {
577-
final Customizer<String> stringCustomizer = new Customizer<>(STRING_DEFAULT_VALUE, defaultValues);
578-
final Customizer<Queue> queueCustomizer = new Customizer<>(newPriorityQueue(), defaultValues);
579-
final Customizer<Set> setCustomizer = new Customizer<>(emptySet(), defaultValues);
580-
final Customizer<List> listCustomizer = new Customizer<>(emptyList(), defaultValues);
581-
final Customizer<Map> mapCustomizer = new Customizer<>(emptyMap(), defaultValues);
582-
final String defaultStringValue = stringCustomizer.getCustomizedValue(String.class);
583-
defaultValues.put(String.class, defaultStringValue);
584-
final Queue<?> defaultQueue = queueCustomizer.getCustomizedValue(Queue.class);
585-
defaultValues.put(Queue.class, defaultQueue);
586-
final Set<?> defaultSet = setCustomizer.getCustomizedValue(Set.class);
587-
defaultValues.put(Set.class, defaultSet);
588-
final List<?> defaultList = listCustomizer.getCustomizedValue(List.class);
589-
defaultValues.put(List.class, defaultList);
590-
final Map<?, ?> defaultMap = mapCustomizer.getCustomizedValue(Map.class);
591-
defaultValues.put(Map.class, defaultMap);
577+
final DefaultValueCustomizer<String> stringCustomizer =
578+
new DefaultValueCustomizer<>(STRING_DEFAULT_VALUE, defaultValues);
579+
stringCustomizer.customize(String.class);
580+
581+
final DefaultValueCustomizer<Queue> queueCustomizer =
582+
new DefaultValueCustomizer<>(newPriorityQueue(), defaultValues);
583+
queueCustomizer.customize(Queue.class);
584+
585+
final DefaultValueCustomizer<Set> setCustomizer =
586+
new DefaultValueCustomizer<>(emptySet(), defaultValues);
587+
setCustomizer.customize(Set.class);
588+
589+
final DefaultValueCustomizer<List> listCustomizer =
590+
new DefaultValueCustomizer<>(emptyList(), defaultValues);
591+
listCustomizer.customize(List.class);
592+
593+
final DefaultValueCustomizer<Map> mapCustomizer =
594+
new DefaultValueCustomizer<>(emptyMap(), defaultValues);
595+
mapCustomizer.customize(Map.class);
592596
}
593597
}
594598

595-
private static class Customizer<T> {
599+
/**
600+
* Customizes the default value for the provided type.
601+
*/
602+
private static class DefaultValueCustomizer<T> {
596603
private final T defaultValue;
597-
private final Map<Class<?>, ?> defaultValues;
604+
private final Map<Class<?>, ? super Object> defaultValues;
598605

599-
<B extends T> Customizer(B defaultValue, Map<Class<?>, ?> defaultValues) {
606+
private <B extends T> DefaultValueCustomizer(B defaultValue, Map<Class<?>, ? super Object> defaultValues) {
600607
this.defaultValue = defaultValue;
601608
this.defaultValues = defaultValues;
602609
}
603610

604-
T getCustomizedValue(Class<T> typeOfInterest) {
611+
/**
612+
* Adds the {@code defaultValue} for the {@code typeOfInterest},
613+
* if no default value has been set.
614+
*
615+
* @param typeOfInterest the type for which will be provided default value
616+
*/
617+
private void customize(Class<T> typeOfInterest) {
605618
for (Map.Entry<Class<?>, ?> entry : defaultValues.entrySet()) {
606619
final boolean customValuePresent = typeOfInterest.isAssignableFrom(entry.getKey());
607620
if (customValuePresent) {
608-
@SuppressWarnings("unchecked") // It's OK, since we check for the type compliance above.
609-
final T result = (T) entry.getValue();
610-
return result;
621+
return;
611622
}
612623
}
613-
return defaultValue;
624+
625+
defaultValues.put(typeOfInterest, defaultValue);
614626
}
615627
}
616-
617628
}

0 commit comments

Comments
 (0)