View Javadoc

1   /*
2    * $Header: /cvsroot/jdbforms/dbforms/src/org/dbforms/servlets/reports/JRDataSourceRSV.java,v 1.20 2005/11/30 20:31:18 hkollmann Exp $
3    * $Revision: 1.20 $
4    * $Date: 2005/11/30 20:31:18 $
5    *
6    * DbForms - a Rapid Application Development Framework
7    * Copyright (C) 2001 Joachim Peer <joepeer@excite.com>
8    *
9    * This library is free software; you can redistribute it and/or
10   * modify it under the terms of the GNU Lesser General Public
11   * License as published by the Free Software Foundation; either
12   * version 2.1 of the License, or (at your option) any later version.
13   *
14   * This library is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17   * Lesser General Public License for more details.
18   *
19   * You should have received a copy of the GNU Lesser General Public
20   * License along with this library; if not, write to the Free Software
21   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22   */
23  
24  package org.dbforms.servlets.reports;
25  
26  import net.sf.jasperreports.engine.JRException;
27  
28  import org.apache.commons.logging.Log;
29  import org.apache.commons.logging.LogFactory;
30  
31  import org.dbforms.config.ResultSetVector;
32  import java.util.Map;
33  
34  /***
35   * use a ResultSetVector as data source.
36   */
37  public final class JRDataSourceRSV extends AbstractJRDataSource  {
38  	private static Log logCat = LogFactory.getLog(JRDataSourceRSV.class
39  			.getName());
40  
41  	private ResultSetVector rsv;
42  	/***
43  	 * Constructor for JRDataSourceRSV.
44  	 * 
45  	 * @param rsv
46  	 *            DOCUMENT ME!
47  	 * @param pageContext
48  	 *            DOCUMENT ME!
49  	 */
50  	public JRDataSourceRSV(Map attributes, ResultSetVector rsv) {
51  		super(attributes);
52  		this.rsv = rsv;
53  		this.rsv.moveFirst();
54  		// Set the pointer to one place before the first record
55  		// Retriving data for JRDataSource will start with a moveNext!
56  		this.rsv.movePrevious();
57  	}
58  
59  	/***
60  	 * @see net.sf.jasperreports.engine.JRDataSource#next()
61  	 */
62  	public boolean next() throws JRException {
63  		if (ResultSetVector.isNull(rsv)) {
64  			return false;
65  		}
66  		if (rsv.isLast()) {
67  			return false;
68  		}
69  		rsv.moveNext();
70  		return true;
71  	}
72  
73  	public Object getFieldValue(String fieldName) {
74  		Object o = null;
75  		try {
76  			o = rsv.getFieldAsObject(fieldName);
77  		} catch (Exception e) {
78  			logCat.error("getFieldValue", e);
79  		}
80  		return o;
81  	}
82  
83  }