55
66class MethodParam {
77
8- private static final String IO_JAVALIN_CONTEXT = "io.javalin.Context" ;
98 private final String rawType ;
109 private final TypeHandler typeHandler ;
1110 private final String name ;
11+ private final String snakeName ;
1212
1313
1414 MethodParam (VariableElement param ) {
1515 this .name = param .getSimpleName ().toString ();
16+ this .snakeName = Util .snakeCase (name );
1617 this .rawType = param .asType ().toString ();
1718 this .typeHandler = TypeMap .get (rawType );
1819 }
1920
20- private boolean isJavlinContext () {
21- return IO_JAVALIN_CONTEXT .equals (rawType );
21+ private boolean isJavalinContext () {
22+ return Constants . IO_JAVALIN_CONTEXT .equals (rawType );
2223 }
2324
2425 void buildCtxGet (Append writer , Set <String > pathParams ) {
2526
26- if (isJavlinContext ()) {
27+ if (isJavalinContext ()) {
2728 // no conversion for this parameter
2829 return ;
2930 }
@@ -39,16 +40,14 @@ void buildCtxGet(Append writer, Set<String> pathParams) {
3940
4041 // path parameters are expected to be not nullable
4142 // ... with query parameters nullable
42- boolean isPathParam = pathParams .contains (name );
43-
44- String asMethod = (typeHandler == null ) ? null : (isPathParam ) ? typeHandler .asMethod () : typeHandler .toMethod ();
43+ String pathParameter = derivePathParam (pathParams );
44+ String asMethod = (typeHandler == null ) ? null : (pathParameter != null ) ? typeHandler .asMethod () : typeHandler .toMethod ();
4545
4646 if (asMethod != null ) {
4747 writer .append (asMethod );
4848 }
49- if (isPathParam ) {
50- writer .append ("ctx.pathParam(\" %s\" )" , name );
51-
49+ if (pathParameter != null ) {
50+ writer .append ("ctx.pathParam(\" %s\" )" , pathParameter );
5251 } else {
5352 if (typeHandler == null ) {
5453 // assuming this is a body (POST, PATCH)
@@ -64,6 +63,16 @@ void buildCtxGet(Append writer, Set<String> pathParams) {
6463 writer .append (";" ).eol ();
6564 }
6665
66+ private String derivePathParam (Set <String > pathParams ) {
67+ if (pathParams .contains (name )) {
68+ return name ;
69+ }
70+ if (pathParams .contains (snakeName )){
71+ return snakeName ;
72+ }
73+ return null ;
74+ }
75+
6776 void addImports (BeanReader bean ) {
6877 if (typeHandler != null ) {
6978 String importType = typeHandler .getImportType ();
@@ -76,7 +85,7 @@ void addImports(BeanReader bean) {
7685 }
7786
7887 void buildParamName (Append writer ) {
79- if (isJavlinContext ()) {
88+ if (isJavalinContext ()) {
8089 writer .append ("ctx" );
8190 } else {
8291 writer .append (name );
0 commit comments