/* * 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.spss.support; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.validation.constraints.NotNull; import org.obiba.magma.AbstractDatasourceFactory; import org.obiba.magma.Datasource; import org.obiba.magma.datasource.spss.SpssDatasource; import com.google.common.base.Strings; public class SpssDatasourceFactory extends AbstractDatasourceFactory { public static final String DEFAULT_DATASOURCE_NAME = "spss"; public static final String DEFAULT_CHARACTER_SET = "ISO-8859-1"; private static final String DEFAULT_ENTITY_TYPE = "Participant"; private static final String DEFAULT_LOCALE = "en"; // // Data members // private final List<File> files = new ArrayList<>(); private String characterSet; private String entityType; private String locale; private String idVariable; private boolean multilines = false; public void setFile(String path) { setFile(new File(path)); } public void setFile(File file) { files.add(file); } public void addFile(String path) { files.add(new File(path)); } public void addFile(File file) { files.add(file); } public void setCharacterSet(String characterSet) { this.characterSet = characterSet; } public void setEntityType(String entityType) { this.entityType = entityType; } public void setLocale(String locale) { this.locale = locale; } public void setIdVariable(String idVariable) { this.idVariable = idVariable; } public void setMultilines(boolean multilines) { this.multilines = multilines; } @Override public Datasource create() { return internalCreate(); } @NotNull @Override protected Datasource internalCreate() { if(Strings.isNullOrEmpty(characterSet)) { characterSet = DEFAULT_CHARACTER_SET; } if(Strings.isNullOrEmpty(entityType)) { entityType = DEFAULT_ENTITY_TYPE; } if(Strings.isNullOrEmpty(locale)) { locale = DEFAULT_LOCALE; } return new SpssDatasource(getName(), files, characterSet, entityType, locale, idVariable, multilines); } }