1 package net.sumaris.core.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import org.hibernate.boot.model.naming.Identifier;
26
27 import java.util.regex.Pattern;
28
29
30
31
32 public class StringUtils extends org.apache.commons.lang3.StringUtils {
33
34 public static String underscoreToChangeCase(String value) {
35 if (org.apache.commons.lang3.StringUtils.isBlank(value)) return value;
36 value = value.toLowerCase();
37
38
39 int i = value.indexOf('_');
40 do {
41 if (i > 0 && i+1<value.length()) {
42 value = value.substring(0, i)
43 + value.substring(i+1, i+2).toUpperCase()
44 + ((i+1<value.length()) ? value.substring(i + 2) : "");
45 }
46
47 else if (i == 0 && value.length() > 1) {
48 value = value.substring(1);
49 }
50
51 else if (i+1 == value.length()) {
52 return value.substring(0, i);
53 }
54 i = value.indexOf('_', i+1);
55 } while (i != -1);
56 return value;
57 }
58
59 public static String changeCaseToUnderscore(String value) {
60 if (org.apache.commons.lang3.StringUtils.isBlank(value)) return value;
61
62
63 String regex = "([a-z])([A-Z])";
64 String replacement = "$1_$2";
65 return value.replaceAll(regex, replacement).toLowerCase();
66 }
67 }