package net.sf.minuteProject.utils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import net.sf.minuteProject.application.ModelGenerator;
import net.sf.minuteProject.configuration.bean.AbstractConfiguration;
import net.sf.minuteProject.configuration.bean.Configuration;
import net.sf.minuteProject.configuration.bean.GeneratorBean;
import net.sf.minuteProject.configuration.bean.Model;
import net.sf.minuteProject.configuration.bean.Target;
import net.sf.minuteProject.configuration.bean.Template;
import net.sf.minuteProject.configuration.bean.TemplateTarget;
import net.sf.minuteProject.configuration.bean.Package;
import net.sf.minuteProject.configuration.bean.enrichment.rule.Constraint;
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.Function;
import net.sf.minuteProject.configuration.bean.model.data.Reference;
import net.sf.minuteProject.configuration.bean.model.data.Table;
import net.sf.minuteProject.configuration.bean.model.data.constant.Direction;
import net.sf.minuteProject.configuration.bean.model.statement.Composite;
import net.sf.minuteProject.configuration.bean.model.statement.Composites;
import net.sf.minuteProject.configuration.bean.model.statement.Queries;
import net.sf.minuteProject.configuration.bean.model.statement.Query;
import net.sf.minuteProject.configuration.bean.view.View;
public class CommonUtils {
private static Logger logger = Logger.getLogger(CommonUtils.class);
// TODO refactor (4 times)
public static String getTableClassName (AbstractConfiguration bean) {
return FormatUtils.getJavaName(bean.getName());
}
public static String getJavaClassName (GeneratorBean bean) {
if (bean!=null)
return getJavaClassName(bean.getAlias());
return "ERROR_GENERATOR_BEAN_IS_NULL";
}
public static String getTableClassName (Table table) {
return getTcn(table);
}
public static String getColumnClassName (Column column) {
return getJavaClassName(column);
}
public static String getTcn (Table table) {
return getJavaClassName(table.getAlias());
}
public static String getJavaClassName (String entityName) {
return FormatUtils.getJavaName(entityName);
}
public static String getPackageClassName (Package pack) {
return FormatUtils.getJavaName(pack.getName());
}
public static String getTableVariableName (Table table){
return getJavaVariableName(table);
// return getJavaVariableName(table.getAlias());
}
public static String getColumnVariableName (Column column){
return getJavaVariableName(column);
}
public static String getJavaVariableName (GeneratorBean bean){
if (bean==null)
return "SEARCH ON A NULL bean!";
return getJavaVariableName(bean.getAlias());
}
public static String getJavaNameVariableConvertReservedWord(GeneratorBean bean) {
return FormatUtils.getJavaNameVariable(bean.getAlias());
}
public static String getJavaVariableName (String string) {
return FormatUtils.getJavaNameVariable(string);
}
public static String getJavaNameVariableFirstLetter (String string) {
return FormatUtils.getJavaNameVariableFirstLetter(string);
}
public static String getPackageName (GeneratorBean bean, Template template, String targetTemplateName) {
Template templateTarget = getTargetTemplate(template, targetTemplateName);
return getPackageName(bean, templateTarget);
}
public static String getRootAndTechnicalPackageName (Model model, String templateName) {
if (model ==null || templateName==null)
return "PACKAGENAME_ERROR";
Template template = getTemplate(model.getConfiguration(), templateName);
return getPackageName (model, template);
}
// 4 times (model, package, table, view) use hierachy instead
// TODO refactor
public static String getPackageName (GeneratorBean bean, Template template) {
if (bean ==null || template==null)
return "PACKAGENAME_ERROR";
String pluginPackageName = template.getPluginPackageMain(bean);
return (pluginPackageName!=null)?pluginPackageName:ModelUtils.getPackage(bean, template);
}
public static String getPackageName (Model model, Template template, Table table) {
if (model ==null || template==null || table==null)
return "PACKAGENAME_ERROR";
return ModelUtils.getPackage(model, template, table);
}
public static String getPackageName (Model model, Template template, Package pack) {
if (model ==null || template==null || pack==null)
return "PACKAGENAME_ERROR";
return ModelUtils.getPackage(model, template, pack);
}
public static String getPackageName (Model model, Template template) {
if (model ==null || template==null)
return "PACKAGENAME_ERROR";
return ModelUtils.getPackage(model, template);
}
//
public static String getPackageDirName (Model model, Template template, Table table) {
return FormatUtils.getDirFromPackage(getPackageName(model, template, table));
}
public static String getPackageDirName (AbstractConfiguration bean, Template template) {
return FormatUtils.getDirFromPackage(getPackageName(bean, template));
}
// TODO refactor 4 times
public static String getClassName (GeneratorBean bean, Template template) {
if (bean==null || template==null)
return "CLASS_NAME_NOT_AVAILABLE";
//return template.getOutputFileMain(getTableClassName(bean));
return template.getOutputFileMain(bean);
}
// public static String getClassName (Table table, Template template) {
// String className = template.getOutputFileMain(getTableClassName(table));
// return className;
// }
//
public static String getClassName2 (Table table, Template template) {
String className = template.getOutputFileMain(table);
return className;
}
//
// public static String getClassName (Package pack, Template template) {
// return template.getOutputFileMain(getPackageClassName(pack));
// }
// ///
//
// public static String getClassName (Model model, Template template) {
// return template.getOutputFileMain(FormatUtils.getJavaName(model.getName()));
// }
//
public static String getVariableName(Table table, Template template) {
return FormatUtils.getJavaNameVariable(getClassName(table, template));
}
// public static String getJavaType (String type) {
// return ConvertUtils.getJavaTypeFromDBType(type);
// }
public static String getJavaTypeOnly (Column column) {
if (column == null) {
logger.error("ERROR column is null");
return "ERROR column is null";
}
return ConvertUtils.getJavaTypeClassFromDBType(column);
}
public static String getJavaType (Column column) {
if (column == null) {
logger.error("ERROR column is null");
return "ERROR column is null";
}
return ConvertUtils.getJavaTypeFromDBType(column);
}
public static String getTemplateFileName (GeneratorBean bean, Template template, String targetTemplateName) {
Template templateTarget = getTargetTemplate(template, targetTemplateName);
if (templateTarget==null) {
logger.debug("ConfigFile not ok");
return "ERROR on config file : missing "+targetTemplateName;
}
return getFileName(templateTarget, bean);
}
// TODO refactor 4 times
public static String getTemplateClassName (GeneratorBean bean, Template template, String targetTemplateName) {
Template templateTarget = getTargetTemplate(template, targetTemplateName);
if (templateTarget==null) {
logger.debug("ConfigFile not ok");
return "ERROR on config file : missing "+targetTemplateName;
}
return getClassName(bean, templateTarget);
}
protected static String getTemplateClassName (Table table, Template template, String targetTemplateName) {
Template templateTarget = getTargetTemplate(template, targetTemplateName);
if (templateTarget==null) {
logger.debug("ERROR on config file : missing "+targetTemplateName);
return "ERROR on config file : missing "+targetTemplateName;
}
return getClassName(table, templateTarget);
}
public static String getTemplateClassName (Table table, Model model, String targetTemplateName) {
//Template templateTarget = getTargetTemplate(template, targetTemplateName);
Template templateTarget = getTargetTemplate(model, targetTemplateName);
if (templateTarget==null) {
logger.debug("ERROR on config file : missing "+targetTemplateName);
return "ERROR on config file : missing "+targetTemplateName;
}
return getClassName(table, templateTarget);
}
public static String getTemplateClassName (Table table, String targetTemplateName) {
//Template templateTarget = getTargetTemplate(template, targetTemplateName);
Template templateTarget = getTargetTemplate(table.getDatabase().getDataModel().getModel(), targetTemplateName);
if (templateTarget==null) {
logger.debug("ERROR on config file : missing "+targetTemplateName);
return "ERROR on config file : missing "+targetTemplateName;
}
return getClassName(table, templateTarget);
}
protected static String getTemplateClassName (Package pack, Template template, String targetTemplateName) {
Template templateTarget = getTargetTemplate(template, targetTemplateName);
if (templateTarget==null) {
logger.debug("ERROR on config file : missing "+targetTemplateName);
return "ERROR on config file : missing "+targetTemplateName;
}
return getClassName(pack, templateTarget);
}
public static String getTemplateClassName (Model model, Template template, String targetTemplateName) {
Template templateTarget = getTargetTemplate(template, targetTemplateName);
if (templateTarget==null) {
logger.debug("ERROR on config file : missing "+targetTemplateName);
return "ERROR on config file : missing "+targetTemplateName;
}
return getClassName(model, templateTarget);
}
public static Template getTargetTemplate (Template template, String targetTemplateName) {
return template.getTemplateTarget().getTarget().getTemplate(targetTemplateName);
//return template.getTemplateTarget().getTemplate(targetTemplateName);
}
public static Template getTargetTemplate (Model model, String targetTemplateName) {
return model.getConfiguration().getTarget().getTemplate(targetTemplateName);
//return template.getTemplateTarget().getTemplate(targetTemplateName);
}
public static boolean hasTemplate (Model model, String targetTemplateName) {
if (getTargetTemplate(model, targetTemplateName)!=null)
return true;
return false;
}
// get all the package either for table, package or model
// TODO remove this method
protected static String getPackageName (Model model, Table table, Template template, String targetTemplateName) {
return getPackageName(model, getTargetTemplate(model, targetTemplateName), table);
}
protected static String getPackageName (Model model, Table table, String targetTemplateName) {
return getPackageName(model, getTargetTemplate(model, targetTemplateName), table);
}
public static String getPackageName (AbstractConfiguration bean, Template template, String targetTemplateName) {
return getPackageName(bean, getTargetTemplate(template, targetTemplateName));
}
protected static String getPackageName (Model model, Template template, String targetTemplateName) {
return getPackageName(model, getTargetTemplate(template, targetTemplateName));
}
protected static String getPackageName (Model model, Package pack, Template template, String targetTemplateName) {
return getPackageName(model, getTargetTemplate(template, targetTemplateName), pack);
}
protected static String getBusinessPackage(Model model, Table table) {
if (table==null)
return "TABLE CANNOT BE NUL";
return model.getBusinessModel().getBusinessPackage().getPackage(table.getName());
}
protected static String getFunctionPackage(Model model, Function function) {
return model.getFunctionModel().getFunctionPackage().getPackage(function.getName());
}
public static Template getTemplate (Configuration configuration, String name) {
return getTemplate(configuration.getTarget(), name);
// Template template=null;
// for (Iterator iter = configuration.getTarget().getTemplateTargets().iterator(); iter.hasNext(); ) {
// template = ((TemplateTarget)iter.next()).getTemplate(name);
// if (template != null)
// break;
// }
// return template;
}
public static Template getTemplate (Target target, String name) {
for (TemplateTarget templateTarget : target.getTemplateTargets()) {
Template template = templateTarget.getTemplate(name);
if (template != null)
return template;
}
return null;
}
public static String getFileName (Template template, GeneratorBean bean) {
if (template==null)
return "TEMPLATE_CANNOT_BE_NUL";
return template.getOutputFileName(bean);
}
public static String getFileMainName (Template template, GeneratorBean bean) {
if (template==null)
return "TEMPLATE_CANNOT_BE_NUL";
return template.getOutputFileMain(bean);
}
public static String getClasspathName (Template template, GeneratorBean bean) {
if (template==null)
return "TEMPLATE_CANNOT_BE_NUL";
return template.getOutputFileName(bean);
}
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 String getFunctionPackageName(Model model, Function function){
return getFunctionPackage(model, function);
}
public static String getSDDPackageName(Query query){
return getSDDPackage(query.getQueries().getName(), Queries.DEFAULT_PACKAGE_NAME);
}
public static String getSDDPackageName(Composite composite){
return getSDDPackage(composite.getComposites().getName(), Composites.DEFAULT_PACKAGE_NAME);
}
private static String getSDDPackage(String name, String defaultValue) {
if (name!=null)
return name;
return defaultValue;
}
public static String getBusinessPackageName(Model model, Table table){
return getBusinessPackage(model, table);
}
public static String getAssociatedBusinessPackageName(Model model, String tableName){
if (tableName==null || model==null)
return "getAssociatedBusinessPackageName returns null";
String a= model.getBusinessModel().getBusinessPackage().getPackage(tableName);
return a;
}
public static String getPrimaryKey (Table table) {
return FormatUtils.getJavaName(TableUtils.getPrimaryKey(table));
}
public static String getPrimaryKeyType (Table table) {
if (table.hasPrimaryKey())
return getJavaType(TableUtils.getPrimaryFirstColumn(table));
return "ERROR-NO PK found for table "+table.getName();
}
public static String getPrimaryKeyTypeOnly (Table table) {
if (table.hasPrimaryKey())
return getJavaTypeOnly(TableUtils.getPrimaryFirstColumn(table));
return "ERROR-NO PK found for table "+table.getName();
}
public static String getPrimaryKeyFullType (Table table) {
if (table.hasPrimaryKey())
return getFullType2(TableUtils.getPrimaryFirstColumn(table));
return "ERROR-NO PK found for table "+table.getName();
}
public static String getType (Column column) {
if (column == null) {
logger.debug("ERROR the column is null");
return "ERROR column is null";
}
return ConvertUtils.getJavaTypeFromDBType(column.getTypeAlias());//column.getType());
}
public static String getFullType2 (Column column) {
if (column == null) {
logger.debug("ERROR the column is null");
return "ERROR column is null";
}
return ConvertUtils.getJavaTypeFromDBFullType(column);
}
public static String getPK (Table table) {
return TableUtils.getPrimaryKey(table);
}
public static Column getPrimaryKeyFirstColumn (Table table) {
return TableUtils.getPrimaryFirstColumn(table);
}
public static boolean hasPrimaryKey (Table table) {
return table.hasPrimaryKey();
}
/**
* returns true if the table has a or more primary and all of the pk are user provided
* @param table
* @return
*/
public static boolean isPkUserProvided (Table table) {
if (table.isManyToMany())
return true;
if (table.hasPrimaryKey()) {
Column [] columns = table.getPrimaryKeyColumns();
for (int i = 0; i < columns.length; i++) {
Column column = columns[i];
if (!ColumnUtils.isPkUserProvided(column))
return false;
}
return true;
}
return false;
}
public static boolean isPkUserProvided (Column column) {
return ColumnUtils.isPkUserProvided(column);
}
public static String getLevelTemplateFullPath (AbstractConfiguration bean, Template template, String targetTemplateName) {
return getPackageName(bean, template, targetTemplateName) +"."+ getTemplateClassName (bean, template, targetTemplateName);
}
public static String getLevelTemplateFullClassPath (AbstractConfiguration bean, Template template, String targetTemplateName) {
return FormatUtils.getDirFromPackage(getLevelTemplateFullPath(bean, template, targetTemplateName));
}
public static String getArtifactRelativePathDirAndFullName (AbstractConfiguration bean, Template template, String targetTemplateName) {
return getArtifactRelativePathDir(bean, template, targetTemplateName) +
"/"+ getTemplateFileName(bean, template, targetTemplateName);
//return getLevelTemplateFullClassPath(bean, template, targetTemplateName)+"."+templa;
}
public static String getArtifactRelativePathDir(AbstractConfiguration bean,
Template template, String targetTemplateName) {
return FormatUtils.getDirFromPackage(getPackageName(bean, template, targetTemplateName));
}
public static String getArtifactRelativePathDirAndFullName(Template template, Table table) {
// TODO refactor may have side effect check with the Template implementation
String classpathName = getPackageName(table, template);
String filename = getFileName(template, table);
return FormatUtils.getDirFromPackage(classpathName)+"/"+filename;
}
public static String getArtifactRelativePathDirAndFullName(Template template, Model model) {
// TODO refactor may have side effect check with the Template implementation
String classpathName = getPackageName(model, template);
String filename = getFileName(template, model);
return FormatUtils.getDirFromPackage(classpathName)+"/"+filename;
}
public static String getArtifactRelativePathDirAndFullName(Table table, String templateName) {
Template template = getTemplate(table.getDatabase().getDataModel().getModel().getConfiguration(), templateName);
return getArtifactRelativePathDirAndFullName(template, table);
}
public static String getArtifactRelativePathDirAndFullName(Model model, String templateName) {
Template template = getTemplate(model.getConfiguration(), templateName);
return getArtifactRelativePathDirAndFullName(template, model);
}
public static String getArtifactFullClasspath(Table table, String templateName) {
Template template = getTemplate(getModel(table).getConfiguration(), templateName);
return getEntityLevelTemplateFullPath(getModel(table), table, template, templateName);
}
public static String getArtifactFullClasspath(Model model, String templateName) {
return getLevelTemplateFullPath(model, getTemplate(model.getConfiguration(), templateName), templateName);
}
public static String getTemplateArtifactName (Model model, String templateName) {
Template template = getTemplate(model.getConfiguration(), templateName);
return getFileName(template, model);
}
public static String getTemplateArtifactName (Table table, String templateName) {
Template template = getTemplate(getModel(table).getConfiguration(), templateName);
return getFileName(template, table);
}
public static String getTemplateArtifactMainName (Table table, String templateName) {
Template template = getTemplate(getModel(table).getConfiguration(), templateName);
return getFileMainName(template, table);
}
public static String getTemplateArtifactDirName (Model model, String templateName) {
Template template = getTemplate(model.getConfiguration(), templateName);
return FormatUtils.getDirFromPackage(getPackageName(model, template));
}
private static Model getModel(Table table) {
return table.getDatabase().getDataModel().getModel();
}
public static String getEntityLevelTemplateFullPath(Model model, Table table, Template template, String targetTemplateName) {
return getPackageName(model, table, template, targetTemplateName) +"."+ getTemplateClassName (table, model, targetTemplateName);
}
public static String getEntityLevelTemplateFullPath(Model model, String tableName, Template template, String targetTemplateName) {
Table table = TableUtils.getTable(model.getDataModel().getDatabase(), tableName);
if (table==null)
return "";
return getPackageName(model, table, template, targetTemplateName) +"."+ getTemplateClassName (table, model, targetTemplateName);
}
public static String getEntityLevelTemplateFullPath(GeneratorBean bean, Template template, String targetTemplateName) {
return getPackageName(bean, template, targetTemplateName) +"."+ getTemplateClassName (bean, template, targetTemplateName);
}
public static String getTemplateJavaVariableName(Table table, Model model, String targetTemplateName) {
String result= getTemplateClassName(table, model, targetTemplateName);
return CommonUtils.getJavaVariableName(result);
}
public static String getJavaNameVariableFirstLetter(Table table, Model model, String targetTemplateName) {
String result= getTemplateClassName(table, model, targetTemplateName);
return CommonUtils.getJavaNameVariableFirstLetter(result);
}
private static String getPackageLevelTemplateFullPath(Model model, Package pack, Template template, String targetTemplateName) {
return getPackageName(model, pack, template, targetTemplateName) +"."+ getTemplateClassName (pack, template, targetTemplateName);
}
public static String getPackageLevelTemplateFullClassPath(Model model, Package pack, Template template, String targetTemplateName) {
return FormatUtils.getDirFromPackage(getPackageLevelTemplateFullPath(model, pack, template, targetTemplateName));
}
public static String getModelLevelTemplateFullPath(Model model, Template template, String targetTemplateName) {
return getPackageName(model, template, targetTemplateName) +"."+ getTemplateClassName (model, template, targetTemplateName);
}
public static String getModelLevelTemplateFullClassPath(Model model, Template template, String targetTemplateName) {
return FormatUtils.getDirFromPackage(getModelLevelTemplateFullPath(model, template, targetTemplateName));
}
public static String getPhysicalPathFileStartWithLowerCase (GeneratorBean bean, Template template, String targetTemplateName) {
Template target = getTargetTemplate(template, targetTemplateName);
//TODO change only quick
return getPhysicalDirPath(bean, template, targetTemplateName)+FormatUtils.firstLowerCaseOnly(CommonUtils.getFileName(target,bean));
}
public static String getPhysicalPath (GeneratorBean bean, Template template, String targetTemplateName) {
Template target = getTargetTemplate(template, targetTemplateName);
//TODO change only quick
return getPhysicalDirPath(bean, template, targetTemplateName)+CommonUtils.getFileName(target,bean);
}
public static String getPhysicalDirPath (GeneratorBean bean, Template template, String targetTemplateName) {
Template target = getTargetTemplate(template, targetTemplateName);
if (target==null)
return "TARGET "+targetTemplateName+" NOT FOUND";
return target.getOutputdir();
}
public static String getPhysicalDirectory(GeneratorBean bean, Template template) {
StringBuffer sb = new StringBuffer(template.getOutputdir());
String sb1 = new String(CommonUtils.getPackageName(bean, template));
String dir = FormatUtils.getDirFromPackage(sb1, template.isConvertPackageToDir());
if(!StringUtils.isEmpty(dir)) {
sb.append("/");
sb.append(dir);
}
String addEntityDirName = template.getAddEntityDirName();
if (addEntityDirName!=null && addEntityDirName.equals("true")) {
sb.append("/");
sb.append(template.getEntityDirName(bean.getGeneratedBeanName()));
}
String appendEndPackageDir = template.getAppendEndPackageDir();
if (appendEndPackageDir!=null) {
sb.append("/"+appendEndPackageDir);
}
String outputFileDir = sb.toString();
return outputFileDir;
}
public static boolean isEnrichedPrimaryKey (Column column) {
if (column!=null) {
if (column.isPrimaryKey() && column.getTable().getPrimaryKeyColumns().length==1) return true;
// Table table = column.getTable();
// for (Column col : table.getPrimaryKeyColumns()) {
// if (col.getName().equals(column.getName()))
// return true;
// }
}
return false;
}
public static boolean isParentRelationshipSimplificable (Table table, Reference reference) {
//Table child = reference.getForeignTable();
//check no that there is no other reference towards this parent
int cpt=0;
for (Reference ref : table.getParents()) {
if (ref.getForeignTableName().toLowerCase().equals(reference.getForeignTableName().toLowerCase()))
cpt++;
}
if (cpt==1)
return true;
return false;
}
public static String getColumnNameClass (Table table, Reference reference) {
return FormatUtils.getJavaName(getColumnName(table, reference));
}
public static String getColumnNameVariable (Table table, Reference reference) {
return FormatUtils.getJavaNameVariable(getColumnName(table, reference));
}
public static String getColumnAliasVariable (Table table, Reference reference) {
return FormatUtils.getJavaNameVariable(getAliasColumnName(table, reference));
}
public static String getColumnAliasClassName (Table table, Reference reference) {
return FormatUtils.getJavaName(getAliasColumnName(table, reference));
}
private static String getAliasColumnName (Table table, Reference reference) {
return (reference!=null && reference.getLocalColumn()!=null)?reference.getLocalColumn().getAlias():"ERROR_MISSING_REFERENCE_LOCALCOLUMN_ALIAS";
}
private static String getColumnName (Table table, Reference reference) {
return (reference!=null && reference.getLocalColumn()!=null)?reference.getLocalColumn().getName():"ERROR_MISSING_REFERENCE_LOCALCOLUMN_NAME";
}
public static boolean isParentRelationshipSimplificable2 (Reference reference) {
if (isEnrichedPrimaryKey(reference.getLocalColumn())) {
Table child = reference.getLocalTable();
//check no that there is no other reference towards this parent
int cpt=0;
for (Reference ref : child.getParents()) {
if (ref.getLocalTableName().toLowerCase().equals(child.getName().toLowerCase()))
cpt++;
}
if (cpt==1)
return true;
}
return false;
}
/**
* comment utils mark the minute template the a minute comment
*/
public static String getComment (Template template) {
StringBuffer sb = new StringBuffer();
String comment = "This code has been generated by MinuteProject with the template "+template.getName();
if (template.getFileExtension().equals("java")) {
sb.append("/*\n");
sb.append("*");
sb.append(comment);
sb.append("*/\n");
} else
if (template.getFileExtension().equals("xml") || template.getFileExtension().equals("html") || template.getFileExtension().equals("jsp") ) {
sb.append("<!--\n");
sb.append(comment);
sb.append("-->\n");
} else
if (template.getFileExtension().equals("properties") ) {
sb.append("#");
sb.append(comment);
sb.append("\n");
}
return sb.toString();
}
public static int getPrimaryKeyCount (Table table) {
return table.getPrimaryKeyColumns().length;
}
public static List<TemplateTarget> getDistinctTemplateTargetList (Model model) {
return TemplateTargetUtils.getDistinctTemplateTargetDirs(model);
}
public static boolean isModelNull (Model model) {
return (model == null);
}
public static String getJavaDefaultMask (Column column) {
return ConvertUtils.getJavaDefaultMask(column);
}
public static boolean isEmpty(String s) {
return StringUtils.isEmpty(s);
}
public static String getReadMeText(Template template) {
return FormatUtils.convertAttributeText(template.getDescription());
}
public Direction getDirection (String direction) {
return Direction.valueOf(direction);
}
}