01: /**
02: * ===========================================
03: * JFreeReport : a free Java reporting library
04: * ===========================================
05: *
06: * Project Info: http://reporting.pentaho.org/
07: *
08: * (C) Copyright 2001-2007, by Object Refinery Ltd, Pentaho Corporation and Contributors.
09: *
10: * This library is free software; you can redistribute it and/or modify it under the terms
11: * of the GNU Lesser General Public License as published by the Free Software Foundation;
12: * either 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, but WITHOUT ANY WARRANTY;
15: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16: * See the GNU Lesser General Public License for more details.
17: *
18: * You should have received a copy of the GNU Lesser General Public License along with this
19: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20: * Boston, MA 02111-1307, USA.
21: *
22: * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
23: * in the United States and other countries.]
24: *
25: * ------------
26: * DriverConnectionProviderWriteHandler.java
27: * ------------
28: * (C) Copyright 2001-2007, by Object Refinery Ltd, Pentaho Corporation and Contributors.
29: */package org.jfree.report.modules.parser.extwriter.sql;
30:
31: import java.io.IOException;
32:
33: import org.jfree.report.modules.misc.datafactory.sql.ConnectionProvider;
34: import org.jfree.report.modules.misc.datafactory.sql.DriverConnectionProvider;
35: import org.jfree.report.modules.parser.extwriter.ReportWriterContext;
36: import org.jfree.report.modules.parser.extwriter.ReportWriterException;
37: import org.jfree.xmlns.writer.XmlWriter;
38:
39: /**
40: * Creation-Date: Jan 19, 2007, 5:03:22 PM
41: *
42: * @author Thomas Morgner
43: */
44: public class DriverConnectionProviderWriteHandler implements
45: ConnectionProviderWriteHandler {
46: public DriverConnectionProviderWriteHandler() {
47: }
48:
49: public void write(final ReportWriterContext reportWriter,
50: final XmlWriter xmlWriter,
51: final ConnectionProvider connectionProvider)
52: throws IOException, ReportWriterException {
53: final DriverConnectionProvider driverProvider = (DriverConnectionProvider) connectionProvider;
54: xmlWriter.writeTag(SQLDataFactoryWriteHandler.NAMESPACE,
55: "connection", XmlWriter.OPEN);
56:
57: xmlWriter.writeTag(SQLDataFactoryWriteHandler.NAMESPACE,
58: "driver", XmlWriter.OPEN);
59: xmlWriter.writeText(XmlWriter.normalize(driverProvider
60: .getDriver(), false));
61: xmlWriter.writeCloseTag();
62:
63: xmlWriter.writeTag(SQLDataFactoryWriteHandler.NAMESPACE, "url",
64: XmlWriter.OPEN);
65: xmlWriter.writeText(XmlWriter.normalize(
66: driverProvider.getUrl(), false));
67: xmlWriter.writeCloseTag();
68:
69: xmlWriter.writeTag(SQLDataFactoryWriteHandler.NAMESPACE,
70: "properties", XmlWriter.OPEN);
71: final String[] propertyNames = driverProvider
72: .getPropertyNames();
73: for (int i = 0; i < propertyNames.length; i++) {
74: final String name = propertyNames[i];
75: final String value = driverProvider.getProperty(name);
76: xmlWriter.writeTag(SQLDataFactoryWriteHandler.NAMESPACE,
77: "property", "name", name, XmlWriter.OPEN);
78: xmlWriter.writeText(XmlWriter.normalize(value, false));
79: xmlWriter.writeCloseTag();
80: }
81: xmlWriter.writeCloseTag();
82:
83: xmlWriter.writeCloseTag();
84: }
85: }
|