29
29
30
30
import org .apache .commons .logging .Log ;
31
31
import org .apache .commons .logging .LogFactory ;
32
-
33
32
import org .springframework .beans .BeanUtils ;
34
33
import org .springframework .core .log .LogMessage ;
35
34
import org .springframework .core .type .MethodMetadata ;
@@ -171,7 +170,7 @@ private Stream<PropertyDescriptor> collectDescriptors() {
171
170
Stream <PropertyDescriptor > allButDefaultGetters = Arrays .stream (BeanUtils .getPropertyDescriptors (type )) //
172
171
.filter (it -> !hasDefaultGetter (it ));
173
172
174
- Stream <PropertyDescriptor > ownDescriptors = metadata .map (it -> filterAndOrder (allButDefaultGetters , it ))
173
+ Stream <PropertyDescriptor > ownDescriptors = metadata .map (it -> filterAndOrder (allButDefaultGetters , it )) //
175
174
.orElse (allButDefaultGetters );
176
175
177
176
Stream <PropertyDescriptor > superTypeDescriptors = metadata .map (this ::fromMetadata ) //
@@ -189,18 +188,16 @@ private Stream<PropertyDescriptor> collectDescriptors() {
189
188
* @param metadata must not be {@literal null}.
190
189
* @return
191
190
*/
192
- private static Stream <PropertyDescriptor > filterAndOrder (Stream <PropertyDescriptor > source ,
193
- MethodsMetadata metadata ) {
191
+ private Stream <PropertyDescriptor > filterAndOrder (Stream <PropertyDescriptor > source , MethodsMetadata metadata ) {
194
192
195
193
Map <String , Integer > orderedMethods = getMethodOrder (metadata );
196
194
197
- if (orderedMethods .isEmpty ()) {
198
- return source ;
199
- }
195
+ Stream <PropertyDescriptor > filtered = source .filter (it -> it .getReadMethod () != null )
196
+ .filter (it -> it .getReadMethod ().getDeclaringClass ().equals (type ));
200
197
201
- return source . filter ( descriptor -> descriptor . getReadMethod () != null )
202
- . filter ( descriptor -> orderedMethods . containsKey ( descriptor . getReadMethod (). getName ()))
203
- .sorted (Comparator .comparingInt (left -> orderedMethods .get (left .getReadMethod ().getName ())));
198
+ return orderedMethods . isEmpty ( )
199
+ ? filtered
200
+ : filtered .sorted (Comparator .comparingInt (left -> orderedMethods .get (left .getReadMethod ().getName ())));
204
201
}
205
202
206
203
/**
@@ -240,7 +237,8 @@ private static Optional<MethodsMetadata> getMetadata(Class<?> type) {
240
237
241
238
} catch (IOException e ) {
242
239
243
- logger .info (LogMessage .format ("Couldn't read class metadata for %s. Input property calculation might fail" , type ));
240
+ logger .info (
241
+ LogMessage .format ("Couldn't read class metadata for %s. Input property calculation might fail" , type ));
244
242
return Optional .empty ();
245
243
}
246
244
}
0 commit comments