01: /*
02: * Copyright (C) 2005 - 2008 JasperSoft Corporation. All rights reserved.
03: * http://www.jaspersoft.com.
04: *
05: * Unless you have purchased a commercial license agreement from JasperSoft,
06: * the following license terms apply:
07: *
08: * This program is free software; you can redistribute it and/or modify
09: * it under the terms of the GNU General Public License version 2 as published by
10: * the Free Software Foundation.
11: *
12: * This program is distributed WITHOUT ANY WARRANTY; and without the
13: * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14: * See the GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18: * or write to:
19: *
20: * Free Software Foundation, Inc.,
21: * 59 Temple Place - Suite 330,
22: * Boston, MA USA 02111-1307
23: *
24: *
25: *
26: *
27: * JRCSVDataSource.java
28: *
29: * Created on 4 luglio 2003, 12.10
30: *
31: */
32:
33: package it.businesslogic.ireport.connection;
34:
35: import java.io.*;
36: import java.util.*;
37:
38: /**
39: *
40: * @author Administrator
41: */
42: public class JRCSVDataSource implements
43: net.sf.jasperreports.engine.JRDataSource {
44:
45: String row = "";
46: LineNumberReader lineNumberReader;
47:
48: /** Creates a new instance of JRCVSDataSource */
49: public JRCSVDataSource(String cvsFile) {
50: try {
51: lineNumberReader = new LineNumberReader(new FileReader(
52: cvsFile));
53: } catch (Exception ex) {
54: ex.printStackTrace();
55: }
56: }
57:
58: public Object getFieldValue(
59: net.sf.jasperreports.engine.JRField jRField)
60: throws net.sf.jasperreports.engine.JRException {
61: String field = jRField.getName();
62: int fieldPosition = Integer.parseInt(field.substring(7)); // Strip COLUMN_
63: StringTokenizer st = new StringTokenizer(row, ";");
64: while (st.hasMoreTokens()) {
65: fieldPosition--; // The column is not 0 indexed.
66: String token = st.nextToken();
67: if (fieldPosition == 0)
68: return token;
69: }
70: return null; // Column not found...
71: }
72:
73: public boolean next()
74: throws net.sf.jasperreports.engine.JRException {
75: try {
76: row = lineNumberReader.readLine();
77: if (row.length() > 0)
78: return true;
79: } catch (Exception ex) {
80: }
81: return false;
82: }
83:
84: }
|