Skip to content

Commit

Permalink
0001715: Add a new column transform that can be used to set a column …
Browse files Browse the repository at this point in the history
…to the value from a SymmetricDS parameter
  • Loading branch information
chenson42 committed May 8, 2014
1 parent 7364c88 commit 0e50f4a
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
@@ -0,0 +1,64 @@
/**
* Licensed to JumpMind Inc under one or more contributor
* license agreements. See the NOTICE file distributed
* with this work for additional information regarding
* copyright ownership. JumpMind Inc licenses this file
* to you under the GNU General Public License, version 3.0 (GPLv3)
* (the "License"); you may not use this file except in compliance
* with the License.
*
* You should have received a copy of the GNU General Public License,
* version 3.0 (GPLv3) along with this library; if not, see
* <http://www.gnu.org/licenses/>.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jumpmind.symmetric.io.data.transform;

import java.util.Map;

import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.service.IParameterService;

public class ParameterColumnTransform implements ISingleValueColumnTransform, IBuiltInExtensionPoint {

public static final String NAME = "parameter";

IParameterService parameterService;

public ParameterColumnTransform(IParameterService parameterService) {
this.parameterService = parameterService;
}

public String getName() {
return NAME;
}

public boolean isExtractColumnTransform() {
return true;
}

public boolean isLoadColumnTransform() {
return true;
}

public String transform(IDatabasePlatform platform,
DataContext context,
TransformColumn column, TransformedData data, Map<String, String> sourceValues,
String newValue, String oldValue) throws IgnoreColumnException, IgnoreRowException {
String paramName = column.getTransformExpression();
if (paramName != null) {
return parameterService.getString(paramName);
} else {
return null;
}
}

}
Expand Up @@ -35,6 +35,7 @@
import org.jumpmind.symmetric.io.data.transform.ColumnPolicy;
import org.jumpmind.symmetric.io.data.transform.DeleteAction;
import org.jumpmind.symmetric.io.data.transform.IColumnTransform;
import org.jumpmind.symmetric.io.data.transform.ParameterColumnTransform;
import org.jumpmind.symmetric.io.data.transform.TransformColumn;
import org.jumpmind.symmetric.io.data.transform.TransformColumn.IncludeOnType;
import org.jumpmind.symmetric.io.data.transform.TransformPoint;
Expand Down Expand Up @@ -63,6 +64,7 @@ public TransformService(IParameterService parameterService, ISymmetricDialect sy
this.configurationService = configurationService;

columnTransforms = TransformWriter.buildDefaultColumnTransforms();
addColumnTransform(new ParameterColumnTransform(parameterService));

setSqlMap(new TransformServiceSqlMap(symmetricDialect.getPlatform(),
createSqlReplacementTokens()));
Expand Down

0 comments on commit 0e50f4a

Please sign in to comment.