Skip to content

Commit d2f6c7f

Browse files
committed
Added default snake case mapping
1 parent c54088d commit d2f6c7f

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/main/java/org/javawebstack/validator/Validator.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,26 @@ private static <V> V getMapValue(Map<String[], V> map, String[] key){
221221
return null;
222222
}
223223

224+
private static String toSnakeCase(String source){
225+
StringBuilder sb = new StringBuilder();
226+
sb.append(Character.toLowerCase(source.charAt(0)));
227+
for(int i=1; i<source.length(); i++){
228+
if(Character.isUpperCase(source.charAt(i))){
229+
if(!Character.isUpperCase(source.charAt(i-1)))
230+
sb.append("_");
231+
sb.append(Character.toLowerCase(source.charAt(i)));
232+
}else{
233+
sb.append(source.charAt(i));
234+
}
235+
}
236+
return sb.toString();
237+
}
238+
224239
private static String getFieldName(Field field){
225240
SerializedName[] serializedNames = field.getAnnotationsByType(SerializedName.class);
226241
if(serializedNames.length > 0)
227242
return serializedNames[0].value();
228-
return field.getName();
243+
return toSnakeCase(field.getName());
229244
}
230245

231246
private static Map<String[], List<ValidationRule>> getClassRules(Class<?> type){

0 commit comments

Comments
 (0)