Skip to content

Commit

Permalink
SYMMETRICDS-545 - Add validation for table column transforms types th…
Browse files Browse the repository at this point in the history
…at are restricted for use on either extract or load.
  • Loading branch information
chenson42 committed Nov 11, 2011
1 parent ef6c81f commit 6e67dd1
Show file tree
Hide file tree
Showing 12 changed files with 99 additions and 1 deletion.
Expand Up @@ -25,6 +25,14 @@ public String getName() {
return NAME;
}

public boolean isExtractColumnTransform() {
return false;
}

public boolean isLoadColumnTransform() {
return true;
}

public String getFullyQualifiedTableName(String schema, String catalog, String tableName) {
String quote = dbDialect.getPlatform().isDelimitedIdentifierModeOn() ? dbDialect.getPlatform()
.getPlatformInfo().getDelimiterToken() : "";
Expand Down
Expand Up @@ -49,6 +49,14 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}

public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public String transform(ICacheContext context, TransformColumn column,
TransformedData data, Map<String, String> sourceValues, String value, String oldValue)
Expand Down
Expand Up @@ -16,6 +16,15 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}


public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public String transform(ICacheContext context, TransformColumn column,
TransformedData data, Map<String, String> sourceValues, String value, String oldValue) throws IgnoreColumnException,
Expand Down
Expand Up @@ -16,6 +16,14 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}

public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public String transform(ICacheContext context, TransformColumn column,
TransformedData data, Map<String, String> sourceValues, String value, String oldValue) {
Expand Down
Expand Up @@ -12,5 +12,9 @@ public interface IColumnTransform<T> extends IExtensionPoint {
public T transform(ICacheContext context, TransformColumn column,
TransformedData data, Map<String, String> sourceValues, String value, String oldValue)
throws IgnoreColumnException, IgnoreRowException;

public boolean isExtractColumnTransform();

public boolean isLoadColumnTransform();

}
Expand Up @@ -20,6 +20,15 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}


public boolean isExtractColumnTransform() {
return false;
}

public boolean isLoadColumnTransform() {
return true;
}

public String transform(ICacheContext context, TransformColumn column, TransformedData data,
Map<String, String> sourceValues, String value, String oldValue)
Expand Down
Expand Up @@ -52,6 +52,15 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}


public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public String transform(ICacheContext context, TransformColumn column, TransformedData data,
Map<String, String> sourceValues, String value, String oldValue) throws IgnoreColumnException,
Expand Down
Expand Up @@ -43,6 +43,14 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}

public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public List<String> transform(ICacheContext context, TransformColumn column,
TransformedData data, Map<String, String> sourceValues, String value, String oldValue)
Expand Down
Expand Up @@ -20,6 +20,15 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}


public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public String transform(ICacheContext context, TransformColumn column,
TransformedData data, Map<String, String> sourceValues, String value, String oldValue) throws IgnoreColumnException,
Expand Down
Expand Up @@ -104,9 +104,26 @@ private List<TransformTable> getTransformTablesFromDB() {
List<TransformColumn> columns = getTransformColumnsFromDB();
for (TransformTable transformTable : transforms) {
for (TransformColumn column : columns) {
if (column.getTransformId().equals(transformTable.getTransformId())) {
String transformType = column.getTransformType();
boolean addColumnTransform = true;
if (transformType != null) {
IColumnTransform<?> columnTransform = columnTransforms.get(transformType);
if (columnTransform == null) {
addColumnTransform = false;
log.error("TransformTypeInvalid", transformType, column.getTransformId(), column.getSourceColumnName(), "Transform not found");
} else if (transformTable.getTransformPoint() == TransformPoint.EXTRACT && !columnTransform.isExtractColumnTransform()) {
addColumnTransform = false;
log.error("TransformTypeInvalid", transformType, column.getTransformId(), column.getSourceColumnName(), "Transform type not valid for an extract transform");
} else if (transformTable.getTransformPoint() == TransformPoint.LOAD && !columnTransform.isLoadColumnTransform()) {
addColumnTransform = false;
log.error("TransformTypeInvalid", transformType, column.getTransformId(), column.getSourceColumnName(), "Transform type not valid for an load transform");
}
}

if (addColumnTransform && column.getTransformId().equals(transformTable.getTransformId())) {
transformTable.addTransformColumn(column);
}

}
}
return transforms;
Expand Down
Expand Up @@ -27,6 +27,14 @@ public boolean isAutoRegister() {
public String getName() {
return NAME;
}

public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public static String[] getOptions() {
return OPTIONS;
Expand Down
Expand Up @@ -368,6 +368,7 @@ ValidationOfflineSettings=The %s property must be a longer period of time than t
ValidationPleaseSetMe=Please set the registration.url, node.group.id, and external.id for the node.
ValidationRegServerIsMissingConfiguration=This node is configured as a registration server, but it is missing its node_identity. It probably needs configured.
RemovedTriggers=Remove %d triggers
TransformTypeInvalid=Invalid transform type of %s for transform %s with source column of %s. %s
TransformMatchingFallbackNotFound=Could not find a matching transform while falling back to %s
TransformNoPrimaryKeyDefined=No primary key defined for the transformation: %s
TransformNoActionNotConfiguredToDelete=The %s transformation is not configured to delete row. Not sending the delete through.
Expand Down

0 comments on commit 6e67dd1

Please sign in to comment.