@@ -32,10 +32,26 @@ public class NonContainerCascadingMetaData implements CascadingMetaData {
32
32
private static final Log LOG = LoggerFactory .make ();
33
33
34
34
private static final NonContainerCascadingMetaData NON_CASCADING = new NonContainerCascadingMetaData ( false ,
35
- GroupConversionHelper .of ( Collections . emptyMap () ) );
35
+ GroupConversionHelper .EMPTY );
36
36
37
37
private static final NonContainerCascadingMetaData CASCADING_WITHOUT_GROUP_CONVERSIONS = new NonContainerCascadingMetaData ( true ,
38
- GroupConversionHelper .of ( Collections .emptyMap () ) );
38
+ GroupConversionHelper .EMPTY );
39
+
40
+ private static final ContainerCascadingMetaData LIST_CONTAINER_WITHOUT_GROUP_CONVERSIONS =
41
+ new ContainerCascadingMetaData ( List .class , List .class .getTypeParameters ()[0 ], List .class , List .class .getTypeParameters ()[0 ],
42
+ GroupConversionHelper .EMPTY , LegacyCollectionSupportValueExtractors .LIST );
43
+
44
+ private static final ContainerCascadingMetaData MAP_CONTAINER_WITHOUT_GROUP_CONVERSIONS =
45
+ new ContainerCascadingMetaData ( Map .class , Map .class .getTypeParameters ()[1 ], Map .class , Map .class .getTypeParameters ()[1 ],
46
+ GroupConversionHelper .EMPTY , LegacyCollectionSupportValueExtractors .MAP );
47
+
48
+ private static final ContainerCascadingMetaData ITERABLE_CONTAINER_WITHOUT_GROUP_CONVERSIONS =
49
+ new ContainerCascadingMetaData ( Iterable .class , Iterable .class .getTypeParameters ()[0 ], Iterable .class , Iterable .class .getTypeParameters ()[0 ],
50
+ GroupConversionHelper .EMPTY , LegacyCollectionSupportValueExtractors .ITERABLE );
51
+
52
+ private static final ContainerCascadingMetaData OPTIONAL_CONTAINER_WITHOUT_GROUP_CONVERSIONS =
53
+ new ContainerCascadingMetaData ( Optional .class , Optional .class .getTypeParameters ()[0 ], Optional .class , Optional .class .getTypeParameters ()[0 ],
54
+ GroupConversionHelper .EMPTY , LegacyCollectionSupportValueExtractors .OPTIONAL );
39
55
40
56
/**
41
57
* If this type parameter is marked for cascading.
@@ -117,19 +133,27 @@ public CascadingMetaData addRuntimeLegacyCollectionSupport(Class<?> valueClass)
117
133
118
134
private ContainerCascadingMetaData getLegacyContainerElementCascadingMetaData (Class <?> valueClass ) {
119
135
if ( List .class .isAssignableFrom ( valueClass ) ) {
120
- return new ContainerCascadingMetaData ( List .class , List .class .getTypeParameters ()[0 ], List .class , List .class .getTypeParameters ()[0 ],
136
+ return groupConversionHelper .isEmpty () ?
137
+ LIST_CONTAINER_WITHOUT_GROUP_CONVERSIONS :
138
+ new ContainerCascadingMetaData ( List .class , List .class .getTypeParameters ()[0 ], List .class , List .class .getTypeParameters ()[0 ],
121
139
groupConversionHelper , LegacyCollectionSupportValueExtractors .LIST );
122
140
}
123
141
else if ( Map .class .isAssignableFrom ( valueClass ) ) {
124
- return new ContainerCascadingMetaData ( Map .class , Map .class .getTypeParameters ()[1 ], Map .class , Map .class .getTypeParameters ()[1 ],
142
+ return groupConversionHelper .isEmpty () ?
143
+ MAP_CONTAINER_WITHOUT_GROUP_CONVERSIONS :
144
+ new ContainerCascadingMetaData ( Map .class , Map .class .getTypeParameters ()[1 ], Map .class , Map .class .getTypeParameters ()[1 ],
125
145
groupConversionHelper , LegacyCollectionSupportValueExtractors .MAP );
126
146
}
127
147
else if ( Iterable .class .isAssignableFrom ( valueClass ) ) {
128
- return new ContainerCascadingMetaData ( Iterable .class , Iterable .class .getTypeParameters ()[0 ], Iterable .class , Iterable .class .getTypeParameters ()[0 ],
148
+ return groupConversionHelper .isEmpty () ?
149
+ ITERABLE_CONTAINER_WITHOUT_GROUP_CONVERSIONS :
150
+ new ContainerCascadingMetaData ( Iterable .class , Iterable .class .getTypeParameters ()[0 ], Iterable .class , Iterable .class .getTypeParameters ()[0 ],
129
151
groupConversionHelper , LegacyCollectionSupportValueExtractors .ITERABLE );
130
152
}
131
153
else if ( Optional .class .isAssignableFrom ( valueClass ) ) {
132
- return new ContainerCascadingMetaData ( Optional .class , Optional .class .getTypeParameters ()[0 ], Optional .class , Optional .class .getTypeParameters ()[0 ],
154
+ return groupConversionHelper .isEmpty () ?
155
+ OPTIONAL_CONTAINER_WITHOUT_GROUP_CONVERSIONS :
156
+ new ContainerCascadingMetaData ( Optional .class , Optional .class .getTypeParameters ()[0 ], Optional .class , Optional .class .getTypeParameters ()[0 ],
133
157
groupConversionHelper , LegacyCollectionSupportValueExtractors .OPTIONAL );
134
158
}
135
159
else if ( valueClass .isArray () ) {
0 commit comments