Search in sources :

Example 1 with Column

use of com.alibaba.otter.shared.common.model.config.data.Column in project otter by alibaba.

the class ColumnPairAction method doSave.

/**
 * 添加Channel
 *
 * @param channelInfo
 * @param channelParameterInfo
 * @throws Exception
 */
public void doSave(@Param("dataMediaPairId") Long dataMediaPairId, @Param("submitKey") String submitKey, @Param("channelId") Long channelId, @Param("pipelineId") Long pipelineId, @Param("sourceMediaId") Long sourceMediaId, @Param("targetMediaId") Long targetMediaId, @FormGroup("columnPairInfo") Group columnPairInfo, @FormField(name = "formColumnPairError", group = "columnPairInfo") CustomErrors err, Navigator nav) throws Exception {
    String[] sourceColumns = columnPairInfo.getField("dltTarget_l").getStringValues();
    String[] targetColumns = columnPairInfo.getField("dltTarget_r").getStringValues();
    List<String> sourceColumnNames = new ArrayList<String>();
    List<String> targetColumnNames = new ArrayList<String>();
    for (String sourceColumn : sourceColumns) {
        sourceColumnNames.add(sourceColumn);
    }
    for (String targetColumn : targetColumns) {
        targetColumnNames.add(targetColumn);
    }
    DataMedia targetMedia = dataMediaPairService.findById(dataMediaPairId).getTarget();
    if (!targetMedia.getSource().getType().isNapoli() && sourceColumnNames.size() != targetColumnNames.size()) {
        err.setMessage("invalidColumnPair");
        return;
    }
    List<ColumnPair> columnPairsInDb = dataColumnPairService.listByDataMediaPairId(dataMediaPairId);
    List<ColumnPair> columnPairsTemp = new ArrayList<ColumnPair>();
    List<String> columnPairsNameSource = new ArrayList<String>();
    List<String> columnPairsNameTarget = new ArrayList<String>();
    List<ColumnPair> columnPairs = new ArrayList<ColumnPair>();
    if (targetMedia.getSource().getType().isNapoli()) {
        for (ColumnPair columnPair : columnPairsInDb) {
            for (String sourceColumnName : sourceColumnNames) {
                if (StringUtils.isEquals(columnPair.getSourceColumn().getName(), sourceColumnName)) {
                    columnPairsTemp.add(columnPair);
                    columnPairsNameSource.add(sourceColumnName);
                }
            }
        }
        // 要从数据库中删除这些columnPair
        columnPairsInDb.removeAll(columnPairsTemp);
        sourceColumnNames.removeAll(columnPairsNameSource);
        for (String columnName : sourceColumnNames) {
            ColumnPair columnPair = new ColumnPair();
            columnPair.setSourceColumn(new Column(columnName));
            columnPair.setDataMediaPairId(dataMediaPairId);
            columnPairs.add(columnPair);
        }
    } else if (targetMedia.getSource().getType().isMysql() || targetMedia.getSource().getType().isOracle()) {
        for (ColumnPair columnPair : columnPairsInDb) {
            int i = 0;
            for (String sourceColumnName : sourceColumnNames) {
                if (StringUtils.isEquals(columnPair.getSourceColumn().getName(), sourceColumnName) && StringUtils.isEquals(columnPair.getTargetColumn().getName(), targetColumnNames.get(i))) {
                    columnPairsTemp.add(columnPair);
                    columnPairsNameSource.add(sourceColumnName);
                    columnPairsNameTarget.add(targetColumnNames.get(i));
                }
                i++;
            }
        }
        // 要从数据库中删除这些columnPair
        columnPairsInDb.removeAll(columnPairsTemp);
        sourceColumnNames.removeAll(columnPairsNameSource);
        targetColumnNames.removeAll(columnPairsNameTarget);
        int i = 0;
        for (String columnName : sourceColumnNames) {
            ColumnPair columnPair = new ColumnPair();
            columnPair.setSourceColumn(new Column(columnName));
            columnPair.setTargetColumn(new Column(targetColumnNames.get(i)));
            columnPair.setDataMediaPairId(dataMediaPairId);
            columnPairs.add(columnPair);
            i++;
        }
    }
    for (ColumnPair columnPair : columnPairsInDb) {
        dataColumnPairService.remove(columnPair.getId());
    }
    dataColumnPairService.createBatch(columnPairs);
    if (submitKey.equals("保存")) {
        nav.redirectToLocation("dataMediaPairList.htm?pipelineId=" + pipelineId);
    } else if (submitKey.equals("下一步")) {
        nav.redirectToLocation("addColumnPairGroup.htm?dataMediaPairId=" + dataMediaPairId + "&channelId=" + channelId + "&pipelineId=" + pipelineId + "&sourceMediaId=" + sourceMediaId + "&targetMediaId=" + targetMediaId);
    }
}
Also used : ColumnPair(com.alibaba.otter.shared.common.model.config.data.ColumnPair) Column(com.alibaba.otter.shared.common.model.config.data.Column) ArrayList(java.util.ArrayList) DataMedia(com.alibaba.otter.shared.common.model.config.data.DataMedia)

Example 2 with Column

use of com.alibaba.otter.shared.common.model.config.data.Column in project otter by alibaba.

the class DataColumnPairServiceImpl method doToModel.

/*-------------------------------------------------------------*/
/**
 * 用于DO对象转化为Model对象
 */
private ColumnPair doToModel(DataColumnPairDO dataColumnPairDo) {
    Column sourceColumn = dataColumnPairDo.getSourceColumnName() == null ? null : new Column(dataColumnPairDo.getSourceColumnName());
    Column targetColumn = dataColumnPairDo.getTargetColumnName() == null ? null : new Column(dataColumnPairDo.getTargetColumnName());
    ColumnPair columnPair = new ColumnPair(sourceColumn, targetColumn);
    columnPair.setId(dataColumnPairDo.getId());
    columnPair.setDataMediaPairId(dataColumnPairDo.getDataMediaPairId());
    columnPair.setGmtCreate(dataColumnPairDo.getGmtCreate());
    columnPair.setGmtModified(dataColumnPairDo.getGmtModified());
    return columnPair;
}
Also used : ColumnPair(com.alibaba.otter.shared.common.model.config.data.ColumnPair) Column(com.alibaba.otter.shared.common.model.config.data.Column)

Example 3 with Column

use of com.alibaba.otter.shared.common.model.config.data.Column in project otter by alibaba.

the class ColumnPairGroupAction method doSave.

public void doSave(@Param("dataMediaPairId") Long dataMediaPairId, @Param("submitKey") String submitKey, @Param("pipelineId") Long pipelineId, @FormGroup("columnPairGroupInfo") Group columnPairGroupInfo, @FormField(name = "formColumnPairGroupError", group = "columnPairGroupInfo") CustomErrors err, Navigator nav) throws Exception {
    String[] columnPairStrings = columnPairGroupInfo.getField("groupResult").getStringValues();
    ColumnGroup columnGroup = new ColumnGroup();
    List<ColumnPair> columnPairs = new ArrayList<ColumnPair>();
    for (String columnPairString : columnPairStrings) {
        ColumnPair columnPair = new ColumnPair();
        String[] temp = columnPairString.split(COLON);
        columnPair.setSourceColumn(new Column(temp[0]));
        columnPair.setTargetColumn(new Column(temp[1]));
        columnPair.setDataMediaPairId(dataMediaPairId);
        columnPairs.add(columnPair);
    }
    columnGroup.setColumnPairs(columnPairs);
    columnGroup.setDataMediaPairId(dataMediaPairId);
    dataColumnPairGroupService.removeByDataMediaPairId(dataMediaPairId);
    dataColumnPairGroupService.create(columnGroup);
    nav.redirectToLocation("dataMediaPairList.htm?pipelineId=" + pipelineId);
}
Also used : ColumnPair(com.alibaba.otter.shared.common.model.config.data.ColumnPair) Column(com.alibaba.otter.shared.common.model.config.data.Column) ArrayList(java.util.ArrayList) ColumnGroup(com.alibaba.otter.shared.common.model.config.data.ColumnGroup)

Aggregations

Column (com.alibaba.otter.shared.common.model.config.data.Column)3 ColumnPair (com.alibaba.otter.shared.common.model.config.data.ColumnPair)3 ArrayList (java.util.ArrayList)2 ColumnGroup (com.alibaba.otter.shared.common.model.config.data.ColumnGroup)1 DataMedia (com.alibaba.otter.shared.common.model.config.data.DataMedia)1