All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.agimatec.sql.meta.script.DDLExpressions Maven / Gradle / Ivy

The newest version!
package com.agimatec.sql.meta.script;

import com.agimatec.commons.config.Config;
import com.agimatec.commons.config.ConfigManager;
import com.agimatec.commons.config.TextNode;
import com.agimatec.sql.meta.ColumnDescription;
import com.agimatec.sql.meta.mysql.MySqlDDLExpressions;
import com.agimatec.sql.meta.oracle.OracleDDLExpressions;
import com.agimatec.sql.meta.postgres.PostgresDDLExpressions;

import java.util.List;

/**
 * Description: 
* User: roman.stumm
* Date: 04.05.2007
* Time: 10:36:52
*/ public abstract class DDLExpressions { public abstract ExtractExpr[] getExpressions(); public static DDLExpressions forDbms(String dbms) { if ("oracle".equalsIgnoreCase(dbms)) { return new OracleDDLExpressions(); } else if ("postgres".equalsIgnoreCase(dbms)) { return new PostgresDDLExpressions(); } else if ("mysql".equalsIgnoreCase(dbms)) { return new MySqlDDLExpressions(); } else return null; } protected DDLExpressions() { } public ExtractExpr getExpression(String expName) { for (ExtractExpr each : getExpressions()) { if (expName.equals(each.getName())) return each; } return null; } /** * equalize type names (between schema-import and ddl-parsing) * * @param cd */ public abstract void equalizeColumn(ColumnDescription cd); @Override public String toString() { return getClass().getName(); } /** * remove \" * * @param value - value or null to strip * @return stripped value or null */ public String strip(String value) { if (value == null) return null; int start = 0, end = value.length(); if (value.startsWith("\"")) { start++; } if (value.endsWith("\"")) { end--; } return value.substring(start, end); } public static ExtractExpr[] compileExpressions(String ddlXmlPath) { Config cfg = ConfigManager.createForClasspath().readConfig(ddlXmlPath); return DDLScriptSqlMetaFactory.compileExpressions(convertToArray(cfg.getList("ddl"))); } private static String[] convertToArray(List texts) { String[] stmtFormats = new String[texts.size()]; int i = 0; for (TextNode each : texts) { stmtFormats[i++] = each.getValue().trim().replace("\n", ""); } return stmtFormats; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy