Skip to content

Commit

Permalink
starting some refactorings
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Nov 11, 2011
1 parent 8b0b7a1 commit 165334b
Show file tree
Hide file tree
Showing 48 changed files with 2,226 additions and 150 deletions.
4 changes: 3 additions & 1 deletion symmetric/symmetric-assemble/pom.xml
Expand Up @@ -28,8 +28,10 @@
</properties>

<modules>
<module>../symmetric-util</module>
<module>../symmetric-csv</module>
<module>../symmetric-ddl</module>
<module>../symmetric-ddl</module>
<module>../symmetric-io</module>
<module>../symmetric-core</module>
<module>../symmetric-server</module>
</modules>
Expand Down
2 changes: 1 addition & 1 deletion symmetric/symmetric-core/pom.xml
Expand Up @@ -20,7 +20,7 @@
</dependency>
<dependency>
<groupId>org.jumpmind.symmetric</groupId>
<artifactId>symmetric-ddl</artifactId>
<artifactId>symmetric-io</artifactId>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
Expand Down
Expand Up @@ -57,6 +57,7 @@
import org.jumpmind.symmetric.common.ParameterConstants;
import org.jumpmind.symmetric.common.logging.ILog;
import org.jumpmind.symmetric.common.logging.LogFactory;
import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.db.interbase.InterbaseDbDialect;
import org.jumpmind.symmetric.db.sybase.SybaseDbDialect;
import org.jumpmind.symmetric.ddl.Platform;
Expand All @@ -69,8 +70,6 @@
import org.jumpmind.symmetric.ddl.platform.SqlBuilder;
import org.jumpmind.symmetric.ext.IDatabaseUpgradeListener;
import org.jumpmind.symmetric.load.IColumnFilter;
import org.jumpmind.symmetric.load.StatementBuilder;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;
import org.jumpmind.symmetric.model.Channel;
import org.jumpmind.symmetric.model.DataEventType;
import org.jumpmind.symmetric.model.Node;
Expand Down Expand Up @@ -1372,9 +1371,9 @@ public void addDatabaseUpgradeListener(IDatabaseUpgradeListener listener) {
protected void initLobHandler() {
}

public StatementBuilder createStatementBuilder(DmlType type, String tableName, Column[] keys,
public DmlStatement createStatementBuilder(DmlType type, String catalogName, String schemaName, String tableName, Column[] keys,
Column[] columns, Column[] preFilteredColumns) {
return new StatementBuilder(type, tableName, keys, columns, preFilteredColumns,
return new DmlStatement(type, catalogName, schemaName, tableName, keys, columns, preFilteredColumns,
isDateOverrideToTimestamp(), getIdentifierQuoteString());
}

Expand Down
Expand Up @@ -24,11 +24,11 @@
import java.util.ArrayList;

import org.apache.commons.collections.CollectionUtils;
import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ddl.model.Column;
import org.jumpmind.symmetric.ddl.model.Table;
import org.jumpmind.symmetric.load.IColumnFilter;
import org.jumpmind.symmetric.load.IDataLoaderContext;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;


public class AutoIncrementColumnFilter implements IColumnFilter {
Expand Down
Expand Up @@ -23,14 +23,13 @@
import java.util.Map;
import java.util.Set;

import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ddl.Platform;
import org.jumpmind.symmetric.ddl.model.Column;
import org.jumpmind.symmetric.ddl.model.Database;
import org.jumpmind.symmetric.ddl.model.Table;
import org.jumpmind.symmetric.ext.IDatabaseUpgradeListener;
import org.jumpmind.symmetric.load.IColumnFilter;
import org.jumpmind.symmetric.load.StatementBuilder;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;
import org.jumpmind.symmetric.model.Channel;
import org.jumpmind.symmetric.model.DataEventType;
import org.jumpmind.symmetric.model.Node;
Expand Down Expand Up @@ -325,7 +324,7 @@ public long insertWithGeneratedKey(JdbcTemplate jdbcTemplate, final String sql,

public String getDriverVersion();

public StatementBuilder createStatementBuilder(DmlType type, String tableName, Column[] keys, Column[] columns,
public DmlStatement createStatementBuilder(DmlType type, String catalogName, String schemaName, String tableName, Column[] keys, Column[] columns,
Column[] preFilteredColumns);

/*
Expand Down
Expand Up @@ -33,11 +33,11 @@
import org.jumpmind.symmetric.common.ParameterConstants;
import org.jumpmind.symmetric.db.AbstractDbDialect;
import org.jumpmind.symmetric.db.BinaryEncoding;
import org.jumpmind.symmetric.db.DmlStatement;
import org.jumpmind.symmetric.db.IDbDialect;
import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ddl.Platform;
import org.jumpmind.symmetric.ddl.model.Column;
import org.jumpmind.symmetric.load.StatementBuilder;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;
import org.jumpmind.symmetric.model.Trigger;
import org.jumpmind.symmetric.model.TriggerHistory;
import org.springframework.jdbc.core.JdbcTemplate;
Expand Down Expand Up @@ -277,9 +277,9 @@ protected String cleanTextForTextBasedColumns(String text) {
}

@Override
public StatementBuilder createStatementBuilder(DmlType type, String tableName, Column[] keys,
public DmlStatement createStatementBuilder(DmlType type, String catalogName, String schemaName, String tableName, Column[] keys,
Column[] columns, Column[] preFilteredColumns) {
return new PostgresSqlStatementBuilder(type, tableName, keys,
return new PostgresDmlStatement(type, catalogName, schemaName, tableName, keys,
columns,
preFilteredColumns, isDateOverrideToTimestamp(), getIdentifierQuoteString());
}
Expand Down
Expand Up @@ -21,15 +21,15 @@
package org.jumpmind.symmetric.db.postgresql;

import org.apache.commons.lang.ArrayUtils;
import org.jumpmind.symmetric.db.DmlStatement;
import org.jumpmind.symmetric.ddl.model.Column;
import org.jumpmind.symmetric.load.StatementBuilder;

public class PostgresSqlStatementBuilder extends StatementBuilder {
public class PostgresDmlStatement extends DmlStatement {

public PostgresSqlStatementBuilder(DmlType type, String tableName, Column[] keys,
public PostgresDmlStatement(DmlType type, String catalogName, String schemaName, String tableName, Column[] keys,
Column[] columns, Column[] preFilteredColumns, boolean isDateOverrideToTimestamp,
String identifierQuoteString) {
super(type, tableName, keys, columns, preFilteredColumns, isDateOverrideToTimestamp,
super(type, catalogName, schemaName, tableName, keys, columns, preFilteredColumns, isDateOverrideToTimestamp,
identifierQuoteString);
}

Expand Down
Expand Up @@ -20,9 +20,9 @@

package org.jumpmind.symmetric.load;

import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ddl.model.Table;
import org.jumpmind.symmetric.ext.IExtensionPoint;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;

/**
* This filter will be deprecated in the future. Please use the data transformation
Expand Down
Expand Up @@ -28,10 +28,11 @@

import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.jumpmind.symmetric.db.DmlStatement;
import org.jumpmind.symmetric.db.IDbDialect;
import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ddl.model.Column;
import org.jumpmind.symmetric.ddl.model.Table;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;
import org.jumpmind.symmetric.util.ArgTypePreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;

Expand Down Expand Up @@ -66,7 +67,7 @@ public class TableTemplate {

private Map<String, Column> allMetaData;

private HashMap<DmlType, StatementBuilder> statementMap;
private HashMap<DmlType, DmlStatement> statementMap;

private List<IColumnFilter> columnFilters = new ArrayList<IColumnFilter>();

Expand All @@ -88,7 +89,7 @@ public TableTemplate(JdbcTemplate jdbcTemplate, IDbDialect dbDialect, String tab
public void resetMetaData(boolean useCache) {
table = dbDialect.getTable(catalog, schema, tableName, useCache);
allMetaData = new HashMap<String, Column>();
statementMap = new HashMap<DmlType, StatementBuilder>();
statementMap = new HashMap<DmlType, DmlStatement>();

if (table != null) {
for (Column column : table.getColumns()) {
Expand Down Expand Up @@ -118,12 +119,12 @@ final public boolean isIgnoreThisTable() {
}

public int insert(IDataLoaderContext ctx, String[] columnValues, String[] keyValues) {
StatementBuilder st = getStatementBuilder(ctx, DmlType.INSERT, columnNames);
DmlStatement st = getStatementBuilder(ctx, DmlType.INSERT, columnNames);
return execute(ctx, st, columnValues, keyValues);
}

public int update(IDataLoaderContext ctx, String[] columnValues, String[] keyValues) {
StatementBuilder st = null;
DmlStatement st = null;
ArrayList<String> changedColumnNameList = new ArrayList<String>();
ArrayList<String> changedColumnValueList = new ArrayList<String>();
ArrayList<Column> changedColumnMetaList = new ArrayList<Column>();
Expand Down Expand Up @@ -190,15 +191,15 @@ protected String getKeyValue(IDataLoaderContext ctx, Column column, String[] key
}

public int delete(IDataLoaderContext ctx, String[] keyValues) {
StatementBuilder st = getStatementBuilder(ctx, DmlType.DELETE, columnNames);
DmlStatement st = getStatementBuilder(ctx, DmlType.DELETE, columnNames);
if (keyValues == null || keyValues.length == 0) {
keyValues = oldData;
}
return execute(ctx, st, null, keyValues);
}

public int count(IDataLoaderContext ctx, String[] keyValues) {
StatementBuilder st = getStatementBuilder(ctx, DmlType.COUNT, columnNames);
DmlStatement st = getStatementBuilder(ctx, DmlType.COUNT, columnNames);
if (columnFilters != null) {
for (IColumnFilter columnFilter : columnFilters) {
keyValues = columnFilter.filterColumnsValues(ctx, st.getDmlType(), getTable(),
Expand All @@ -208,43 +209,27 @@ public int count(IDataLoaderContext ctx, String[] keyValues) {
Object[] objectValues = dbDialect.getObjectValues(ctx.getBinaryEncoding(), keyValues,
st.getKeys());
return jdbcTemplate.queryForInt(st.getSql(), objectValues, st.getTypes());
}
public String getFullyQualifiedTableName() {
return getFullyQualifiedTableName(false);
}

public String getFullyQualifiedTableName(boolean preventQuotes) {
String quote = !preventQuotes ? dbDialect.getIdentifierQuoteString() : "";
String tableName = quote + (table != null ? table.getName() : this.tableName) + quote;
if (!StringUtils.isBlank(schema)) {
tableName = schema + "." + tableName;
}
if (!StringUtils.isBlank(catalog)) {
tableName = catalog + "." + tableName;
}
return tableName;
}
}

final private StatementBuilder getStatementBuilder(IDataLoaderContext ctx, DmlType type,
final private DmlStatement getStatementBuilder(IDataLoaderContext ctx, DmlType type,
String[] preFilteredColumnNames) {
StatementBuilder st = statementMap.get(type);
DmlStatement st = statementMap.get(type);
if (st == null) {
this.filteredColumnNames = preFilteredColumnNames;
if (columnFilters != null) {
for (IColumnFilter columnFilter : columnFilters) {
this.filteredColumnNames = columnFilter.filterColumnsNames(ctx, type, getTable(),
this.filteredColumnNames);
}
}

String tableName = getFullyQualifiedTableName();
}

String[] lookupColumnNames = keyNames;
if (type == DmlType.UPDATE || type == DmlType.DELETE) {
lookupColumnNames = getLookupValues();
}

st = dbDialect.createStatementBuilder(type, tableName, getColumnMetaData(lookupColumnNames),

String tableName = table != null ? table.getName() : this.tableName;
st = dbDialect.createStatementBuilder(type, catalog, schema, tableName, getColumnMetaData(lookupColumnNames),
getColumnMetaData(this.filteredColumnNames),
getColumnMetaData(preFilteredColumnNames));

Expand All @@ -271,7 +256,7 @@ public Object[] getObjectKeyValues(IDataLoaderContext ctx, String[] values) {
return dbDialect.getObjectValues(ctx.getBinaryEncoding(), values, getColumnMetaData(keyNames));
}

final private int execute(IDataLoaderContext ctx, StatementBuilder st, String[] columnValues, String[] keyValues) {
final private int execute(IDataLoaderContext ctx, DmlStatement st, String[] columnValues, String[] keyValues) {
if (columnFilters != null) {
for (IColumnFilter columnFilter : columnFilters) {
columnValues = columnFilter.filterColumnsValues(ctx, st.getDmlType(), getTable(),
Expand Down
Expand Up @@ -149,10 +149,9 @@ public void skip() throws IOException {
private void logTableIgnored() {
TableTemplate tableTemplate = context.getTableTemplate();
if (tableTemplate != null) {
String tableName = tableTemplate.getFullyQualifiedTableName();
if (!missingTables.contains(tableName)) {
log.warn("LoaderTableMissing", tableName);
missingTables.add(tableName);
if (!missingTables.contains(tableTemplate.getTableName())) {
log.warn("LoaderTableMissing", tableTemplate.getTableName());
missingTables.add(tableTemplate.getTableName());
}
}
}
Expand Down
Expand Up @@ -9,8 +9,8 @@
import org.jumpmind.symmetric.common.logging.ILog;
import org.jumpmind.symmetric.common.logging.LogFactory;
import org.jumpmind.symmetric.db.IDbDialect;
import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ext.ICacheContext;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;
import org.jumpmind.symmetric.model.NodeGroupLink;
import org.jumpmind.symmetric.service.IParameterService;
import org.jumpmind.symmetric.util.AppUtils;
Expand Down
Expand Up @@ -23,9 +23,9 @@
import java.util.ArrayList;
import java.util.List;

import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ext.ICacheContext;
import org.jumpmind.symmetric.extract.DataExtractorContext;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;
import org.jumpmind.symmetric.model.Data;
import org.jumpmind.symmetric.model.DataEventType;
import org.jumpmind.symmetric.model.Router;
Expand Down
Expand Up @@ -25,12 +25,12 @@
import org.apache.commons.lang.ArrayUtils;
import org.jumpmind.symmetric.SymmetricException;
import org.jumpmind.symmetric.common.ParameterConstants;
import org.jumpmind.symmetric.db.DmlStatement.DmlType;
import org.jumpmind.symmetric.ddl.model.Table;
import org.jumpmind.symmetric.ext.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.load.IDataLoaderContext;
import org.jumpmind.symmetric.load.IDataLoaderFilter;
import org.jumpmind.symmetric.load.IMissingTableHandler;
import org.jumpmind.symmetric.load.StatementBuilder.DmlType;
import org.jumpmind.symmetric.load.TableTemplate;

public class TransformDataLoader extends AbstractTransformer implements IBuiltInExtensionPoint,
Expand Down Expand Up @@ -249,7 +249,7 @@ protected void apply(IDataLoaderContext context,
public boolean isHandlingMissingTable(IDataLoaderContext context) {
List<TransformTable> transformationsToPerform = findTablesToTransform(
context.getNodeGroupLink(),
context.getTableTemplate().getFullyQualifiedTableName(true));
Table.getFullyQualifiedTableName(context.getCatalogName(), context.getSchemaName(), context.getTableName(), ""));
return transformationsToPerform != null && transformationsToPerform.size() > 0;
}

Expand Down
Expand Up @@ -24,13 +24,13 @@ public class TransformTable {
protected int transformOrder = 0;

public String getFullyQualifiedSourceTableName() {
return Table.getFullyQualifiedTableName(sourceTableName, sourceSchemaName,
sourceCatalogName);
return Table.getFullyQualifiedTableName(sourceCatalogName, sourceSchemaName,
sourceTableName);
}

public String getFullyQualifiedTargetTableName() {
return Table.getFullyQualifiedTableName(targetTableName, targetSchemaName,
targetCatalogName);
return Table.getFullyQualifiedTableName(sourceCatalogName, sourceSchemaName,
sourceTableName);
}

public String getTransformId() {
Expand Down Expand Up @@ -92,7 +92,7 @@ public void setTargetTableName(String targetTableName) {
public void setTransformPoint(TransformPoint transformPoint) {
this.transformPoint = transformPoint;
}

public TransformPoint getTransformPoint() {
return transformPoint;
}
Expand Down Expand Up @@ -122,7 +122,7 @@ public List<TransformColumn> getTransformColumnFor(String columnName) {
for (TransformColumn column : transformColumns) {
if (column.getSourceColumnName().equals(columnName)) {
columns.add(column);
}
}
}
return columns;
}
Expand Down Expand Up @@ -163,15 +163,15 @@ public void setUpdateFirst(boolean updateFirst) {
public boolean isUpdateFirst() {
return updateFirst;
}

public void setNodeGroupLink(NodeGroupLink nodeGroupLink) {
this.nodeGroupLink = nodeGroupLink;
}

public NodeGroupLink getNodeGroupLink() {
return nodeGroupLink;
}

@Override
public int hashCode() {
if (transformId != null) {
Expand All @@ -180,7 +180,7 @@ public int hashCode() {
return super.hashCode();
}
}

@Override
public boolean equals(Object obj) {
if (transformId != null) {
Expand All @@ -200,6 +200,6 @@ public String toString() {
return transformId;
} else {
return super.toString();
}
}
}
}

0 comments on commit 165334b

Please sign in to comment.