1 package org.apache.torque.engine.database.model; 2 3 18 19 import java.util.List ; 20 import java.util.StringTokenizer ; 21 22 import org.apache.commons.lang.StringUtils; 23 24 31 public class JavaNameGenerator implements NameGenerator 32 { 33 50 public String generateName(List inputs) 51 { 52 String schemaName = (String ) inputs.get(0); 53 String method = (String ) inputs.get(1); 54 String javaName = null; 55 56 if (CONV_METHOD_UNDERSCORE.equals(method)) 57 { 58 javaName = underscoreMethod(schemaName); 59 } 60 else if (CONV_METHOD_UNDERSCORE_OMIT_SCHEMA.equals(method)) 61 { 62 javaName = underscoreOmitSchemaMethod(schemaName); 63 } 64 else if (CONV_METHOD_JAVANAME.equals(method)) 65 { 66 javaName = javanameMethod(schemaName); 67 } 68 else if (CONV_METHOD_NOCHANGE.equals(method)) 69 { 70 javaName = nochangeMethod(schemaName); 71 } 72 else 73 { 74 javaName = underscoreMethod(schemaName); 77 } 78 79 return javaName; 80 } 81 82 94 protected String underscoreMethod(String schemaName) 95 { 96 StringBuffer name = new StringBuffer (); 97 98 StringTokenizer tok = new StringTokenizer 101 (schemaName, String.valueOf(STD_SEPARATOR_CHAR)); 102 while (tok.hasMoreTokens()) 103 { 104 String namePart = ((String ) tok.nextElement()).toLowerCase(); 105 name.append(StringUtils.capitalize(namePart)); 106 } 107 108 schemaName = name.toString(); 111 name = new StringBuffer (); 112 tok = new StringTokenizer 113 (schemaName, String.valueOf(SCHEMA_SEPARATOR_CHAR)); 114 while (tok.hasMoreTokens()) 115 { 116 String namePart = (String ) tok.nextElement(); 117 name.append(StringUtils.capitalize(namePart)); 118 } 119 return name.toString(); 120 } 121 122 135 protected String underscoreOmitSchemaMethod(String schemaName) 136 { 137 int lastDotPos = schemaName.lastIndexOf(SCHEMA_SEPARATOR_CHAR); 139 if (lastDotPos != -1) { 140 schemaName = schemaName.substring(lastDotPos + 1); 141 } 142 StringBuffer name = new StringBuffer (); 143 StringTokenizer tok = new StringTokenizer 144 (schemaName, String.valueOf(STD_SEPARATOR_CHAR)); 145 while (tok.hasMoreTokens()) 146 { 147 String namePart = ((String ) tok.nextElement()).toLowerCase(); 148 name.append(StringUtils.capitalize(namePart)); 149 } 150 return name.toString(); 151 } 152 153 163 protected String javanameMethod(String schemaName) 164 { 165 StringBuffer name = new StringBuffer (); 166 StringTokenizer tok = new StringTokenizer 167 (schemaName, String.valueOf(STD_SEPARATOR_CHAR)); 168 while (tok.hasMoreTokens()) 169 { 170 String namePart = (String ) tok.nextElement(); 171 name.append(StringUtils.capitalize(namePart)); 172 } 173 174 schemaName = name.toString(); 177 name = new StringBuffer (); 178 179 tok = new StringTokenizer 180 (schemaName, String.valueOf(SCHEMA_SEPARATOR_CHAR)); 181 while (tok.hasMoreTokens()) 182 { 183 String namePart = (String ) tok.nextElement(); 184 name.append(StringUtils.capitalize(namePart)); 185 } 186 return name.toString(); 187 } 188 189 196 protected final String nochangeMethod(String name) 197 { 198 return name; 199 } 200 } 201 | Popular Tags |