KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > finalist > jaggenerator > Utils


1 /* Copyright (C) 2003 Finalist IT Group
2  *
3  * This file is part of JAG - the Java J2EE Application Generator
4  *
5  * JAG is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  * JAG is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  * You should have received a copy of the GNU General Public License
14  * along with JAG; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  */

17
18 package com.finalist.jaggenerator;
19
20 import java.text.StringCharacterIterator JavaDoc;
21
22 /**
23  *
24  * @author hillie
25  */

26 public class Utils {
27
28    public static String JavaDoc toClassName(String JavaDoc unformatted) {
29       try {
30          if (unformatted.startsWith("T_")) {
31             unformatted = unformatted.substring(2);
32          }
33          String JavaDoc s = format(unformatted);
34          s = initCap(s);
35          return s;
36       } catch (Exception JavaDoc e) {
37          return unformatted;
38       }
39    }
40
41    /**
42     * Format the name by only allowing lowercase.
43     */

44    public static String JavaDoc formatLowercase(String JavaDoc unformatted) {
45       try {
46          if (unformatted == null) {
47              return null;
48          }
49          StringBuffer JavaDoc sb = new StringBuffer JavaDoc(unformatted.toLowerCase());
50          StringBuffer JavaDoc formattedString = new StringBuffer JavaDoc();
51          //remove underscores
52
for (int i = 0; i < sb.length(); i++) {
53              char c = sb.charAt(i);
54              if (c >= 'a' && c <= 'z') {
55                  formattedString.append(c);
56              }
57          }
58          return formattedString.toString();
59       } catch (Exception JavaDoc e) {
60          return unformatted;
61       }
62    }
63
64    /**
65     * Format the name by only allowing lowercase and uppercase and
66     * always start with uppercase.
67     */

68    public static String JavaDoc formatLowerAndUpperCase(String JavaDoc unformatted) {
69       try {
70          if (unformatted == null) {
71              return null;
72          }
73          StringBuffer JavaDoc sb = new StringBuffer JavaDoc(unformatted);
74          StringBuffer JavaDoc formattedString = new StringBuffer JavaDoc();
75          //remove underscores
76
for (int i = 0; i < sb.length(); i++) {
77              char c = sb.charAt(i);
78              if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){
79                  formattedString.append(c);
80              }
81          }
82          return firstToUpperCase(formattedString.toString());
83       } catch (Exception JavaDoc e) {
84          return unformatted;
85       }
86    }
87    
88    public static String JavaDoc format(String JavaDoc unformatted) {
89       try {
90          StringBuffer JavaDoc sb = new StringBuffer JavaDoc(unformatted.toLowerCase());
91          //remove underscore and capitalize nest character
92
int i = sb.toString().indexOf("_");
93          while (i >= 0) {
94             if (i > -1) sb.replace(i, i + 2, sb.substring(i + 1, i + 2).toUpperCase());
95             i = sb.toString().indexOf("_");
96          }
97          //remove dash and capitalize nest character
98
i = sb.toString().indexOf("-");
99          while (i >= 0) {
100             if (i > -1) sb.replace(i, i + 2, sb.substring(i + 1, i + 2).toUpperCase());
101             i = sb.toString().indexOf("-");
102          }
103          return sb.toString();
104       } catch (Exception JavaDoc e) {
105          return unformatted;
106       }
107    }
108
109    /**
110     * Undoes a format. Everything is capitalised and any uppercase character
111     * forces a '_' to be prefixed, e.g. "theColumnName" is unformatted to "THE_COLUMN_NAME", and
112     * "theATrain" unformats to "THE_A_TRAIN".
113     * @param formatted
114     * @return the unformatted String.
115     */

116    public static String JavaDoc unformat(String JavaDoc formatted) {
117       StringBuffer JavaDoc result = new StringBuffer JavaDoc();
118       for (int i = 0; i < formatted.length(); i++) {
119          if (Character.isUpperCase(formatted.charAt(i))) {
120             result.append('_');
121          }
122          result.append(Character.toUpperCase(formatted.charAt(i)));
123       }
124       return result.toString();
125    }
126
127    public static String JavaDoc initCap(String JavaDoc unformatted) {
128       StringBuffer JavaDoc sb = new StringBuffer JavaDoc(unformatted);
129       //capitalize first character
130
if ((unformatted != null) && (unformatted.length() > 0)) {
131          sb.replace(0, 1, sb.substring(0, 1).toUpperCase());
132          return sb.toString();
133       } else
134          return unformatted;
135    }
136
137    public static String JavaDoc formatFKName(String JavaDoc fkColumnName) {
138       return format(fkColumnName) + "FK";
139    }
140
141    public static String JavaDoc firstToLowerCase(String JavaDoc text) {
142       return (text == null || text.length() == 0) ? "" : Character.toLowerCase(text.charAt(0)) +
143             (text.length() > 1 ? text.substring(1) : "");
144    }
145    
146    public static String JavaDoc firstToUpperCase(String JavaDoc text) {
147       return (text == null || text.length() == 0) ? "" : Character.toUpperCase(text.charAt(0)) +
148             (text.length() > 1 ? text.substring(1) : "");
149    }
150    
151 }
152
Popular Tags