|
From: backer <eb...@us...> - 2004-10-14 12:39:56
|
Update of /cvsroot/dynxform/dynxform/src/java/net/sf/dynxform/db/report In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6850/db/report Added Files: ReportBuilder.java Log Message: moved all database depencies to db package --- NEW FILE: ReportBuilder.java --- package net.sf.dynxform.db.report; import net.sf.dynxform.db.DatabaseConnection; import net.sf.dynxform.db.Query; import net.sf.dynxform.db.StoredProcedure; import net.sf.dynxform.exception.business.BusinessException; import net.sf.dynxform.exception.system.SystemException; import net.sf.dynxform.form.types.Report; import net.sf.dynxform.report.ReportPool; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.Map; /** * $Id: ReportBuilder.java,v 1.1 2004/10/14 12:39:44 ebacker Exp $ * Copyright (c) dynxform.sf.net. All Rights Reserved. */ public final class ReportBuilder { static final Log log = LogFactory.getLog(ReportBuilder.class); private static final DatabaseConnection databaseConnection = DatabaseConnection.create(); public static Report buildReport(final net.sf.dynxform.report.schema.Report report, final Map parameters) throws SystemException, BusinessException { Query query; try { if (report.getStoredProcedureChoice() == null || report.getStoredProcedureChoice().getProcedure() == null) query = new Query(report, parameters); else query = new StoredProcedure(report.getStoredProcedureChoice().getProcedure(), parameters); } catch (Exception ex) { throw new BusinessException("Cannot build report with GUID \"" + report.getGuid() + '\"', ex); } query.setConnection(databaseConnection.get()); query.execute(); return query.getReport(); } public static Report buildResultSets(final String reportID, final Map parameters) throws SystemException, BusinessException { final ReportPool pool = ReportPool.getInstance(); net.sf.dynxform.report.schema.Report report = null; try { try { report = (net.sf.dynxform.report.schema.Report) pool.borrowObject(reportID); } catch (Exception e) { throw new BusinessException("Cannot get " + reportID + " from pool", e); } return buildReport(report, parameters); } finally { try { if (report != null) { pool.returnObject(reportID, report); } } catch (Exception e) { log.error("Failed to return report" + reportID + " to pool", e); } } } } |