package net.sf.minuteProject.utils; import net.sf.minuteProject.configuration.bean.model.data.Column; import net.sf.minuteProject.configuration.bean.model.data.Table; public class SqlUtils { public static boolean isQuotedColumn (Column column) { if (column == null) return false; if (column.getType().equals("INT") || column.getType().equals("NUMBER") || column.getType().equals("INTEGER") || column.getType().equals("LONG") || column.getType().equals("DECIMAL") || column.getType().equals("BIGINT")) return false; return true; } /** * isPKQuotedColumn return true is the First pk column is not a sql type of integer. * @param table * @return */ public static boolean isPKQuotedColumn (Table table) { return isQuotedColumn (TableUtils.getPrimaryFirstColumn(table)); } public static String getTimeConversionExpression (String columnExpression, Column column) { return ""; } public static String getSqlTypeFormat(Column column, String databaseType) { return getDbSqlTypeFormat(column, databaseType)+getSqlTypeSizeFormat(column, databaseType); } private static String getDbSqlTypeFormat(Column column, String databaseType) { if (databaseType.equals("ORACLE")) return getOracleSqlTypeFormat(column); return column.getType(); } private static String getOracleSqlTypeFormat(Column column) { if (column.getType().equals("INT") || column.getType().equals("INTEGER") || column.getType().equals("LONG") || column.getType().equals("BIGINT")) return "NUMBER"; return column.getType(); } private static String getSqlTypeSizeFormat(Column column, String databaseType) { if (databaseType.equals("ORACLE")) return getOracleSqlTypeSizeFormat(column); return getSqlTypeSizeFormat(column); } private static String getOracleSqlTypeSizeFormat(Column column) { if (column.getType().equals("DECIMAL")) return getSqlTypeSizeFormat(column, false); if (column.getType().equals("CLOB") || column.getType().equals("BLOB") || column.getType().equals("TIMESTAMP")) return ""; return getSqlTypeSizeFormat(column); } private static String getSqlTypeSizeFormat(Column column, boolean appendScale) { String s = column.getSize(); if (s!=null && !s.equals("")) { if (appendScale) return "("+s+getSqlTypeScaleFormat (column)+")"; else return "("+s+")"; } return ""; } private static String getSqlTypeSizeFormat(Column column) { return getSqlTypeSizeFormat(column, true); } private static String getSqlTypeScaleFormat(Column column) { Integer sc = column.getScale(); if (sc!=null && !isQuotedColumn(column)) return ","+sc.intValue(); return ""; } }