/* * Copyright (c) 2017 OBiBa. All rights reserved. * * This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ /** * */ package org.obiba.magma.datasource.jdbc.support; import java.sql.Timestamp; import java.util.Date; import liquibase.change.ColumnConfig; import liquibase.change.core.UpdateDataChange; public class UpdateDataChangeBuilder { private final UpdateDataChange updateDataChange = new UpdateDataChange(); public static UpdateDataChangeBuilder newBuilder() { return new UpdateDataChangeBuilder(); } public UpdateDataChangeBuilder tableName(String tableName) { updateDataChange.setTableName(tableName); return this; } public UpdateDataChangeBuilder where(String whereClause) { updateDataChange.setWhereClause(whereClause); return this; } public UpdateDataChangeBuilder withColumn(String columnName, String columnValue) { ColumnConfig column = getColumn(columnName); column.setValue(columnValue); updateDataChange.addColumn(column); return this; } public UpdateDataChangeBuilder withColumn(String columnName, Boolean columnValue) { ColumnConfig column = getColumn(columnName); column.setValueBoolean(columnValue); updateDataChange.addColumn(column); return this; } public UpdateDataChangeBuilder withColumn(String columnName, Date columnValue) { ColumnConfig column = getColumn(columnName); if(columnValue != null) { column.setValueDate(new Timestamp(columnValue.getTime())); } updateDataChange.addColumn(column); return this; } public UpdateDataChange build() { return updateDataChange; } private ColumnConfig getColumn(String columnName) { ColumnConfig column = new ColumnConfig(); column.setName(columnName); return column; } }