KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > webdocwf > util > xml > XmlDriver


1 /*
2     Copyright (C) 2003 Together
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Lesser General Public
6     License as published by the Free Software Foundation; either
7     version 2.1 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12     Lesser General Public License for more details.
13
14     You should have received a copy of the GNU Lesser General Public
15     License along with this library; if not, write to the Free Software
16     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */

18
19 package org.webdocwf.util.xml;
20
21 import java.sql.*;
22 import java.util.Properties JavaDoc;
23 import java.io.File JavaDoc;
24 import java.io.RandomAccessFile JavaDoc;
25
26 /**
27  * Class implements the JDBC Driver interface for the XmlJdbc driver.
28  *
29  * @author Zoran Milakovic
30  */

31
32 public class XmlDriver implements Driver
33 {
34
35   public static final String JavaDoc DEFAULT_EXTENSION = ".xml";
36   public static final String JavaDoc FILE_EXTENSION="fileExtension";
37   private final static String JavaDoc URL_PREFIX = "jdbc:webdocwf:xml:";
38   private Properties JavaDoc info = null;
39   private String JavaDoc filePath;
40
41
42   /* If set to true, driver will log into xmldriver.log file, in working directory */
43   private static boolean ENABLE_LOG = false;
44
45
46   /**
47    *Gets the propertyInfo attribute of the XmlDriver object
48    *
49    * @param url Description of Parameter
50    * @param info Description of Parameter
51    * @return The propertyInfo value
52    * @exception SQLException Description of Exception
53    * @since
54    */

55   public DriverPropertyInfo[] getPropertyInfo(String JavaDoc url, Properties JavaDoc info)
56        throws SQLException
57   {
58     return new DriverPropertyInfo[0];
59   }
60
61
62   /**
63    *Gets the majorVersion attribute of the XmlDriver object
64    *
65    * @return The majorVersion value
66    * @since
67    */

68   public int getMajorVersion()
69   {
70     return 1;
71   }
72
73
74   /**
75    *Gets the minorVersion attribute of the XmlDriver object
76    *
77    * @return The minorVersion value
78    * @since
79    */

80   public int getMinorVersion()
81   {
82     return 0;
83   }
84
85
86   /**
87    *Description of the Method
88    *
89    * @param url Description of Parameter
90    * @param info Description of Parameter
91    * @return Description of the Returned Value
92    * @exception SQLException Description of Exception
93    * @since
94    */

95   public Connection connect(String JavaDoc url, Properties JavaDoc info) throws SQLException
96   {
97     DriverManager.println("XmlJdbc - XmlDriver:connect() - url=" + url);
98     // check for correct url
99
if (!url.startsWith(URL_PREFIX))
100     {
101       return null;
102     }
103     // get filepath from url
104
this.filePath = url.substring(URL_PREFIX.length());
105     //if file do not ends with .xml,add one
106
if( !filePath.endsWith(".xml") ) {
107           this.filePath += this.DEFAULT_EXTENSION;
108     }
109     DriverManager.println("XmlJdbc - XmlDriver:connect() - filePath=" + filePath);
110     // check if filepath is a correct path.
111
// File checkPath;
112
// checkPath = new File(filePath);
113
//
114
// if (!checkPath.exists())
115
// {
116
// this.createDatabase();
117
// }
118
return new XmlConnection(filePath, info);
119   }
120
121
122   /**
123    *Description of the Method
124    *
125    * @param url Description of Parameter
126    * @return Description of the Returned Value
127    * @exception SQLException Description of Exception
128    * @since
129    */

130   public boolean acceptsURL(String JavaDoc url) throws SQLException
131   {
132     DriverManager.println("XmlJdbc - XmlDriver:accept() - url=" + url);
133     return url.startsWith(URL_PREFIX);
134   }
135
136
137   /**
138    *Description of the Method
139    *
140    * @return Description of the Returned Value
141    * @since
142    */

143   public boolean jdbcCompliant()
144   {
145     return false;
146   }
147   // This static block inits the driver when the class is loaded by the JVM.
148
static
149   {
150     try
151     {
152       java.sql.DriverManager.registerDriver(new XmlDriver());
153     }
154     catch (SQLException e)
155     {
156       throw new RuntimeException JavaDoc(
157           "FATAL ERROR: Could not initialise Xml driver ! Message was: "
158            + e.getMessage());
159     }
160   }
161
162   public static void log( String JavaDoc message) {
163       if ( XmlDriver.ENABLE_LOG ) {
164         try {
165           File JavaDoc file = new File JavaDoc("xmldriver.log");
166           if (!file.exists())
167             file.createNewFile();
168           java.io.RandomAccessFile JavaDoc fileLogr = new java.io.RandomAccessFile JavaDoc(file,
169               "rw");
170           fileLogr.seek(fileLogr.length());
171           fileLogr.writeBytes("XmlJdbc, "+message + "\r\n");
172           fileLogr.close();
173         }
174         catch (Exception JavaDoc ex) {
175           ex.printStackTrace();
176         }
177       }
178     }
179
180 }
181
182
Popular Tags