/*
* Copyright (C) 2011 Marius Giepz
*
* 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 2 of the License, or (at your option)
* any later version.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* 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, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package org.saiku.adhoc.service.cda;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import org.saiku.adhoc.exceptions.CdaException;
import org.saiku.adhoc.exceptions.SaikuAdhocException;
import org.saiku.adhoc.model.WorkspaceSessionHolder;
import org.saiku.adhoc.model.master.SaikuMasterModel;
import org.saiku.adhoc.service.report.ReportGeneratorService;
public class ExportService {
private WorkspaceSessionHolder sessionHolder;
private ReportGeneratorService reportGeneratorService;
private ICdaAccessor cdaAccessor;
public void setSessionHolder(WorkspaceSessionHolder sessionHolder) {
this.sessionHolder = sessionHolder;
}
public void setCdaAccessor(ICdaAccessor cda) {
this.cdaAccessor = cda;
}
public String exportXls(String sessionId) throws CdaException, SaikuAdhocException {
SaikuMasterModel model = sessionHolder.getModel(sessionId);
return cdaAccessor.doQuery(model, sessionId, "xls");
}
public String exportCsv(String sessionId) throws CdaException, SaikuAdhocException {
SaikuMasterModel query = sessionHolder.getModel(sessionId);
return cdaAccessor.doQuery(query, sessionId, "csv");
}
public void exportPdf(String sessionId, OutputStream output) throws Exception{
this.reportGeneratorService.renderReportPdf(sessionId, output);
}
public void setReportGeneratorService(ReportGeneratorService reportGeneratorService) {
this.reportGeneratorService = reportGeneratorService;
}
public ReportGeneratorService getReportGeneratorService() {
return reportGeneratorService;
}
public void writeXls(String sessionId, OutputStream output) throws SaikuAdhocException {
SaikuMasterModel query = sessionHolder.getModel(sessionId);
cdaAccessor.doQuery(query, sessionId, "xls", output);
}
public void writeCsv(String sessionId, ByteArrayOutputStream output) throws SaikuAdhocException {
SaikuMasterModel query = sessionHolder.getModel(sessionId);
cdaAccessor.doQuery(query, sessionId, "csv", output);
}
}