/* * 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.excel.support; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import javax.validation.constraints.NotNull; import org.obiba.magma.AbstractDatasourceFactory; import org.obiba.magma.Datasource; import org.obiba.magma.MagmaRuntimeException; import org.obiba.magma.datasource.excel.ExcelDatasource; public class ExcelDatasourceFactory extends AbstractDatasourceFactory { private File file; private boolean readOnly = false; public void setFile(File file) { this.file = file; } public void setReadOnly(boolean readOnly) { this.readOnly = readOnly; } @NotNull @Override protected Datasource internalCreate() { if(readOnly) { try { return new ExcelDatasource(getName(), new FileInputStream(file)); } catch(FileNotFoundException e) { throw new MagmaRuntimeException("Exception reading excel spreadsheet " + file.getName(), e); } } else { return new ExcelDatasource(getName(), file); } } }