@@ -90,7 +90,7 @@ private String convertClass(Class<?> clazz) {
9090 .collect (toMap (RecordComponent ::getName , RecordComponent ::getAccessor )) :
9191 stream (clazz .getMethods ())
9292 .filter (m -> !isStatic (m .getModifiers ()) && m .getParameterCount () == 0 && isLikeGetter (m .getName ()))
93- .collect (toMap (Method :: getName , m -> m , (m1 , m2 ) -> m1 .getReturnType ().isAssignableFrom (m2 .getReturnType ()) ? m2 : m1 ));
93+ .collect (toMap (m -> toPropertyName ( m . getName ()) , m -> m , (m1 , m2 ) -> m1 .getReturnType ().isAssignableFrom (m2 .getReturnType ()) ? m2 : m1 ));
9494
9595 var methodNamesInOrder = new ArrayList <>(methodAnnotations .keySet ());
9696 methodNamesInOrder .retainAll (getters .keySet ());
@@ -101,7 +101,7 @@ private String convertClass(Class<?> clazz) {
101101 methodNamesInOrder .addAll (superClassGetters );
102102
103103 for (String name : methodNamesInOrder ) {
104- processProperty (getters .get (name ), output , methodAnnotations );
104+ processProperty (name , getters .get (name ), output , methodAnnotations );
105105 }
106106 } catch (Exception e ) {
107107 logger .log (SEVERE , "Failed to convert " + clazz , e );
@@ -117,12 +117,9 @@ static boolean isLikeGetter(String methodName) {
117117 return (methodName .startsWith ("get" ) || methodName .startsWith ("is" )) && !methodName .equals ("getClass" );
118118 }
119119
120- private void processProperty (Method method , StringBuilder out , Map <String , List <String >> classAnnotations ) throws IllegalAccessException , InvocationTargetException , NoSuchMethodException {
120+ private void processProperty (String propertyName , Method method , StringBuilder out , Map <String , List <String >> classAnnotations ) throws IllegalAccessException , InvocationTargetException , NoSuchMethodException {
121121 var fieldBuffer = new StringBuilder ();
122122
123- var name = method .getName ();
124- var propertyName = toPropertyName (name );
125-
126123 if (propertyName == null ) return ;
127124 var dashPos = propertyName .indexOf ('-' );
128125 if (dashPos > 0 ) propertyName = propertyName .substring (0 , dashPos );
@@ -143,7 +140,7 @@ else if (annotationName.equals("JsonProperty"))
143140 fieldBuffer .append (propertyName );
144141
145142 if (!classAnnotations .isEmpty ())
146- for (String annotation : classAnnotations .getOrDefault (name , emptyList ()))
143+ for (var annotation : classAnnotations .getOrDefault (method . getName () , emptyList ()))
147144 if (annotation .contains ("Nullable;" ))
148145 fieldBuffer .append ("?" );
149146
@@ -162,7 +159,7 @@ else if (annotationName.equals("JsonProperty"))
162159 typeBuffer .append (typeMapper .getTSType (isIterable ? type .getComponentType () : type ));
163160 }
164161 } catch (Exception e ) {
165- logger .log (SEVERE , "Failed to convert property type for `" + name + "` in `" + method .getDeclaringClass () + "`, defaulting to `any`" , e );
162+ logger .log (SEVERE , "Failed to convert property type for `" + propertyName + "` in `" + method .getDeclaringClass () + "`, defaulting to `any`" , e );
166163 typeBuffer = new StringBuilder ("any" );
167164 }
168165 out .append (fieldBuffer );
0 commit comments