package net.sf.minuteProject.utils; import java.util.StringTokenizer; import net.sf.minuteProject.configuration.bean.model.data.Column; import net.sf.minuteProject.configuration.bean.model.data.ForeignKey; import net.sf.minuteProject.configuration.bean.model.data.Table; import org.apache.commons.lang.StringUtils; public class DBTemplateUtils { public static String getDirFromPackage (String packageSt) { return StringUtils.replace(packageSt,".","//"); } public static String getJavaTypeFromDBType (String dBType) { String retStr=null; if (dBType.equals("BOOLEAN")) return "Boolean"; if (dBType.equals("BIGINT")) return "Long"; if (dBType.equals("DOUBLE")) return "Double"; if (dBType.equals("INT")) return "Integer"; if (dBType.equals("TIME")) return "Timestamp"; if (dBType.equals("DECIMAL")) return "java.math.BigDecimal"; if (dBType.equals("SMALLINT")) return "String"; if (dBType.equals("VARCHAR")) return "String"; if (dBType.equals("CHAR")) return "String"; if (dBType.equals("INTEGER")) return "Integer"; if (dBType.equals("DATE")) return "Date"; if (dBType.equals("TIMESTAMP")) return "Timestamp"; if (dBType.equals("BLOB")) return "Blob"; if (dBType.equals("CLOB")) return "Clob"; return retStr; } public static String getJavaTypeFromDBType (String dBType, int scale) { String retStr=getJavaTypeFromDBType (dBType); if (dBType.equals("DECIMAL")) { if (scale==0) return "Long"; else return "java.math.BigDecimal"; } return retStr; } public static boolean isToGenerate(Table table, String template) { return isToGenerate(table); } public static boolean isToGenerate(Table table) { if (table.getName().startsWith("IMPORT")) return false; if (table.getName().toUpperCase().startsWith("B2B")) return false; if (table.getName().toUpperCase().startsWith("QRTZ")) return false; //if (table.getName().startsWith("APPLIED")) // return false; return true; } public static String firstUpperCaseOnly (String st) { return st.substring(0,1).toUpperCase() +st.substring(1,st.length()).toLowerCase(); } public static String firstLowerCaseOnly (String st) { return st.substring(0,1).toLowerCase() +st.substring(1,st.length()).toLowerCase(); } public static String firstLowerCase (String st) { return st.substring(0,1).toLowerCase() +st.substring(1,st.length()); } public static String getJavaName(String name) { if (name==null) return "JAVA_NAME_RETURNS_NULL"; StringTokenizer st = new StringTokenizer (name,"_"); StringBuffer sb = new StringBuffer(); while (st.hasMoreTokens()){ String token = firstUpperCaseOnly(st.nextToken()); sb.append(token); } return sb.toString(); //return name.substring(0,1).toUpperCase() +name.substring(1,name.length()).toLowerCase(); } public static String getJavaNameVariable(String name) { if (name==null || name.equals("")) return "ERROR_GET_JAVANAMEVARIABLE_WITH_NULL"; String javaname = getJavaName(name); return firstLowerCase(javaname); } public static String getClassNameOnly(Table table) { return getClassNameOnly(table.getName()); } public static String getClassNameOnly(String str) { String name = getJavaName(str); return name.substring(0,1).toUpperCase() +name.substring(1,name.length()); } public static String getClassName(Table table) { return getClassNameOnly(table)+table.getType(); } // public static List getParents (Database database, Table table) { // List list = new ArrayList(); // //Table tableRef; // //table.getForeignKey(0).getReference(0).getLocalColumn(); // String columnRef; // net.sf.minuteProject.configuration.bean.model.data.Reference ref; // Reference reference; // ForeignKey [] foreignKeys = table.getForeignKeys(); // for (int i = 0; i < foreignKeys.length; i++) { // ref = foreignKeys[i].getFirstReference(); // String tableName = foreignKeys[i].getForeignTableName(); // String columnName = ref.getLocalColumnName(); // Table table2 = TableUtils.getTable(database,tableName); // Column column2 = ColumnUtils.getColumn (table2, columnName); // reference = new Reference(table2, column2, tableName, columnName); // //reference.setTableName(tablename); // //reference.setColumnName(ref.getLocalColumnName()); // //reference.setTable(TableUtils.getTable(database,tablename)); // list.add(reference); // } // return list; // } // // public static List getReference (Database database, Table table) { // List list = new ArrayList(); // //Table tableRef; // //table.getForeignKey(0).getReference(0).getLocalColumn(); // String columnRef; // net.sf.minuteProject.configuration.bean.model.data.Reference ref; // Reference reference; // Table [] tables = database.getTables(); // for (int i = 0; i < tables.length; i++) { // ForeignKey [] fk = tables[i].getForeignKeys(); // //fk[j].get // for (int j = 0; j < fk.length; j++) { // String tableName = fk[j].getForeignTableName(); // if (tableName!=null) { // if (tableName.equals(table.getName())) { // columnRef = new String(); // ref = fk[j].getReference(0); // columnRef = ref.getLocalColumnName(); // reference = new Reference(tables[i], ColumnUtils.getColumn(tables[i], columnRef),tables[i].getName(), columnRef); // //reference.setTableName(tables[i].getName()); // //reference.setColumnName(columnRef); // //reference.setTable(tables[i]); // list.add(reference); // } // } // } // } // return list; // } public static boolean isPrimaryKey (Column column, Table table) { Column [] columns = table.getPrimaryKeyColumns(); for (int i = 0; i < columns.length; i++) { if (column.getName().equals(columns[i].getName())) return true; } return false; } public static String getForeignKeyTableName (Column column, Table table) { ForeignKey [] foreignKey = table.getForeignKeys(); for (int j = 0; j < foreignKey.length; j++) { String fkName = foreignKey[j].getReferences()[0].getLocalColumnName(); if (fkName!=null) { if (fkName.equals(column.getName())) { return foreignKey[j].getForeignTableName(); } } } return ""; } public static int getColumLength(Column[] column) { return column.length; } /*public static Enumeration getPackageList (Database database) { Hashtable ht = new Hashtable(); Table tables [] = database.getTables(); for (int i = 0; i < tables.length; i++) { if (isToGenerate(tables[i])) { String packageName = getSubPackage(tables[i]); Package pack = (Package)ht.get(packageName); if (pack == null) { pack = new Package(); pack.setName(packageName); ht.put(packageName, pack); } pack.addTable(tables[i]); } } return ht.elements(); }*/ }