/** * If this model has disposeable resources assigned, close them or dispose them. */ public void close() { if ( closeableTableModel != null ) { closeableTableModel.close(); } }
private TableModel putInCache( final DataCacheKey key, TableModel data ) { if ( key != null ) { final TableModel newData = dataCache.put( key, data ); if ( newData != data && data instanceof CloseableTableModel ) { final CloseableTableModel closeableTableModel = (CloseableTableModel) data; closeableTableModel.close(); } sessionCache.put( key, newData ); data = newData; } return data; }
/** * Closes the report data factory and all report data instances that have been returned by this instance. */ public void close() { if ( closed == false ) { for ( final TableModel map : sessionCache.values() ) { if ( map instanceof CloseableTableModel == false ) { continue; } final CloseableTableModel ct = (CloseableTableModel) map; ct.close(); } sessionCache.clear(); if ( noClose == false ) { backend.close(); } closed = true; } }
protected String performQueryTest( final DataFactory dataFactory ) throws SQLException, ReportDataFactoryException { final ByteArrayOutputStream sw = new ByteArrayOutputStream(); try { final PrintStream ps = new PrintStream( sw, true, "UTF-8" ); final TableModel tableModel = dataFactory.queryData( getLogicalQueryForNextTest(), getParameterForNextTest() ); generateCompareText( ps, tableModel ); if ( tableModel instanceof CloseableTableModel ) { final CloseableTableModel ctm = (CloseableTableModel) tableModel; ctm.close(); } return sw.toString( "UTF-8" ); } catch ( UnsupportedEncodingException e ) { throw new ReportDataFactoryException( "If UTF-8 is not supported, we are in trouble." ); } finally { dataFactory.close(); } }
protected String performDesignTimeTest( final DataFactoryDesignTimeSupport dataFactory ) throws SQLException, ReportDataFactoryException { final ByteArrayOutputStream sw = new ByteArrayOutputStream(); try { final PrintStream ps = new PrintStream( sw, true, "UTF-8" ); final TableModel tableModel = dataFactory.queryDesignTimeStructure( getLogicalQueryForNextTest(), getParameterForNextTest() ); generateCompareText( ps, tableModel ); if ( tableModel instanceof CloseableTableModel ) { final CloseableTableModel ctm = (CloseableTableModel) tableModel; ctm.close(); } return sw.toString( "UTF-8" ); } catch ( UnsupportedEncodingException e ) { throw new ReportDataFactoryException( "If UTF-8 is not supported, we are in trouble." ); } finally { dataFactory.close(); } }
private TableModel queryReportData( final String query, final int queryTimeout, final DataFactory dataFactory, final List<SortConstraint> sortConstraints ) throws ReportDataFactoryException { if ( offlineTableModel == null || changeTracker.isReportQueryChanged() ) { TableModel reportData = null; try { if ( query == null ) { reportData = new EmptyTableModel(); } else if ( dataFactory instanceof DataFactoryDesignTimeSupport ) { final DataFactoryDesignTimeSupport dts = (DataFactoryDesignTimeSupport) dataFactory; reportData = dts.queryDesignTimeStructure( query, new QueryDataRowWrapper( new StaticDataRow(), queryTimeout, 1, sortConstraints ) ); } else { reportData = dataFactory.queryData( query, new QueryDataRowWrapper( new StaticDataRow(), queryTimeout, 1, sortConstraints ) ); } offlineTableModel = new OfflineTableModel( reportData, new DefaultDataAttributeContext() ); } finally { if ( reportData instanceof CloseableTableModel ) { final CloseableTableModel ctm = (CloseableTableModel) reportData; ctm.close(); } } } if ( offlineTableModel == null ) { return new IndexedTableModel( new DefaultTableModel() ); } return offlineTableModel; }