
fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of common-service Show documentation
Show all versions of common-service Show documentation
ObServe Toolkit Common Service module
The newest version!
package fr.ird.observe.services.service.sql;
/*-
* #%L
* ObServe Toolkit :: Common Service
* %%
* Copyright (C) 2017 - 2020 IRD, Ultreia.io
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* .
* #L%
*/
import com.google.common.base.MoreObjects;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimaps;
import fr.ird.observe.dto.ObserveDto;
import fr.ird.observe.dto.reference.ReferentialDtoReference;
import org.nuiton.version.Version;
import java.util.Set;
/**
* Created on 31/12/15.
*
* @author Tony Chemit - [email protected]
*/
public class AddSqlScriptProducerRequest implements ObserveDto {
private final boolean postgres;
private final Version dbVersion;
private boolean addSchema;
private boolean addReferential;
private boolean addSomeReferential;
private boolean addData;
private ImmutableSet dataIds;
private final ArrayListMultimap, String> referentialIds = ArrayListMultimap.create();
public static AddSqlScriptProducerRequest forH2(Version dbVersion) {
return new AddSqlScriptProducerRequest(false, dbVersion);
}
public static AddSqlScriptProducerRequest forPostgres(Version dbVersion) {
return new AddSqlScriptProducerRequest(true, dbVersion);
}
public AddSqlScriptProducerRequest addSchema() {
addSchema = true;
return this;
}
public AddSqlScriptProducerRequest addReferential() {
addReferential = true;
return this;
}
public AddSqlScriptProducerRequest addAllData() {
addData = true;
return this;
}
public AddSqlScriptProducerRequest dataIdsToAdd(ImmutableSet dataIds) {
addData = true;
this.dataIds = dataIds;
return this;
}
public AddSqlScriptProducerRequest referentialIdsToAdd(Class referentialType, Set referentialIds) {
addSomeReferential = true;
this.referentialIds.putAll(referentialType, referentialIds);
return this;
}
public boolean isAddSchema() {
return addSchema;
}
public boolean isAddSomeReferential() {
return addSomeReferential;
}
public boolean isAddReferential() {
return addReferential;
}
public Version getDbVersion() {
return dbVersion;
}
protected AddSqlScriptProducerRequest(boolean postgres, Version dbVersion) {
this.postgres = postgres;
this.dbVersion = dbVersion;
}
public boolean isAddData() {
return addData;
}
public ImmutableSet getDataIds() {
return dataIds;
}
public ListMultimap, String> getReferentialIds() {
return Multimaps.unmodifiableListMultimap(referentialIds);
}
public boolean isH2() {
return !postgres;
}
public boolean isPostgres() {
return postgres;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("postgres", postgres)
.add("addSchema", addSchema)
.add("addReferential", addReferential)
.add("addSomeReferential", addSomeReferential)
.add("addData", addData)
.add("dataIds", dataIds == null ? "" : "[" + String.join(", ", dataIds) + "]")
.add("referentialIds", referentialIds.isEmpty() ? "" : "[" + String.join(", ", referentialIds.values()) + "]")
.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy