KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jodd > db > orm > DbNameUtil


1 // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
2

3 package jodd.db.orm;
4
5 /**
6  * Various db name utilities.
7  */

8 public class DbNameUtil {
9
10     // ---------------------------------------------------------------- tables
11

12
13     public static String JavaDoc convertClassNameToTableName(Class JavaDoc clazz) {
14         return convertClassNameToTableName(clazz, null);
15     }
16     public static String JavaDoc convertClassNameToTableName(Class JavaDoc clazz, String JavaDoc tablePrefix) {
17         return convertClassNameToTableName(clazz.getSimpleName(), tablePrefix);
18     }
19
20     public static String JavaDoc convertClassNameToTableName(String JavaDoc className) {
21         return convertClassNameToTableName(className, null);
22     }
23
24     /**
25      * Converts class name to table name. All lower characters are converted to
26      * upper ones. All upper characters are prefixed with '_'. Therefore, class name
27      * <code>FooBooZoo</code> will be converted to <code>FOO_BOO_ZOO</code>.
28      */

29     public static String JavaDoc convertClassNameToTableName(String JavaDoc className, String JavaDoc tablePrefix) {
30         StringBuilder JavaDoc tableName = new StringBuilder JavaDoc(className.length() + 10);
31         if (tablePrefix != null) {
32             tableName.append(tablePrefix);
33         }
34         for (int i = 0; i < className.length(); i++) {
35             char c = className.charAt(i);
36             if ((i != 0) && (Character.isUpperCase(c) == true)) {
37                 tableName.append('_').append(c);
38             } else {
39                 tableName.append(Character.toUpperCase(c));
40             }
41         }
42         return tableName.toString();
43     }
44
45     public static String JavaDoc convertTableNameToClassName(String JavaDoc tableName) {
46         return convertTableNameToClassName(tableName, null);
47     }
48
49     /**
50      * Converts table name to class name. All characters after '_' are converted to upper ones.
51      * Other characters are converted to lower. Therefore, table name <code>FOO_BOO_ZOO</code>
52      * will be converted to <code>FooBooZoo</code>.
53      */

54     public static String JavaDoc convertTableNameToClassName(String JavaDoc tableName, String JavaDoc tablePrefix) {
55         StringBuilder JavaDoc className = new StringBuilder JavaDoc(tableName.length());
56         int i = 0;
57         if (tablePrefix != null) {
58             if (tableName.startsWith(tablePrefix) == true) {
59                 i = tablePrefix.length();
60             }
61         }
62         boolean toUpper = true;
63         for (; i < tableName.length(); i++) {
64             char c = tableName.charAt(i);
65             if (c == '_') {
66                 toUpper = true;
67                 continue;
68             }
69             if (toUpper == true) {
70                 className.append(Character.toUpperCase(c));
71                 toUpper = false;
72             } else {
73                 className.append(Character.toLowerCase(c));
74             }
75         }
76         return className.toString();
77     }
78
79     // ---------------------------------------------------------------- columns
80

81
82     /**
83      * Converts property name to column name.
84      */

85     public static String JavaDoc convertPropertyNameToColumnName(String JavaDoc propertyName) {
86         StringBuilder JavaDoc tableName = new StringBuilder JavaDoc(propertyName.length() + 10);
87         for (int i = 0; i < propertyName.length(); i++) {
88             char c = propertyName.charAt(i);
89             if ((i != 0) && (Character.isUpperCase(c) == true)) {
90                 tableName.append('_').append(c);
91             } else {
92                 tableName.append(Character.toUpperCase(c));
93             }
94         }
95         return tableName.toString();
96     }
97
98     /**
99      * Converts column name to property name.
100      */

101     public static String JavaDoc convertColumnNameToPropertyName(String JavaDoc columnName) {
102         StringBuilder JavaDoc propertyName = new StringBuilder JavaDoc(columnName.length());
103         int i = 0;
104         boolean toUpper = false;
105         for (; i < columnName.length(); i++) {
106             char c = columnName.charAt(i);
107             if (c == '_') {
108                 toUpper = true;
109                 continue;
110             }
111             if (toUpper == true) {
112                 propertyName.append(Character.toUpperCase(c));
113                 toUpper = false;
114             } else {
115                 propertyName.append(Character.toLowerCase(c));
116             }
117         }
118         return propertyName.toString();
119     }
120 }
121
Popular Tags