View Javadoc

1   /***
2    * Copyright (c) 2003 held jointly by the individual authors.            
3    *                                                                          
4    * This library is free software; you can redistribute it and/or modify it    
5    * under the terms of the GNU Lesser General Public License as published      
6    * by the Free Software Foundation; either version 2.1 of the License, or 
7    * (at your option) any later version.                                            
8    *                                                                            
9    * This library is distributed in the hope that it will be useful, but 
10   * WITHOUT ANY WARRANTY; with out even the implied warranty of 
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
12   * GNU Lesser General Public License for more details.                                                  
13   *                                                                           
14   * You should have received a copy of the GNU Lesser General Public License   
15   * along with this library;  if not, write to the Free Software Foundation,   
16   * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.              
17   *                                                                            
18   * > http://www.gnu.org/copyleft/lesser.html                                  
19   * > http://www.opensource.org/licenses/lgpl-license.php
20   */
21  package net.mlw.vlh.adapter.jdbc.util.setter;
22  
23  import java.sql.PreparedStatement;
24  import java.sql.SQLException;
25  import java.text.ParseException;
26  import java.text.SimpleDateFormat;
27  import java.util.Date;
28  
29  /*** This setter is a ahck to fix problems with the SAS JDBC driver...
30   * 
31   * @author Matthew L. Wilson
32   * @version $Revision: 1.2 $ $Date: 2005/12/19 10:56:41 $
33   */
34  public class SasDateSetter extends TimestampSetter
35  {
36     protected SimpleDateFormat formatter = new SimpleDateFormat(DEFAULT_FORMAT);
37  
38     public static final String DEFAULT_SAS_FORMAT = "ddMMMyy";
39  
40     protected SimpleDateFormat sasFormatter = new SimpleDateFormat(DEFAULT_SAS_FORMAT);
41  
42     /***
43      * @see net.mlw.util.sql.StatementBuilder.Setter#set(java.sql.PreparedStatement, int, java.lang.Object)
44      */
45     public int set(PreparedStatement query, int index, Object value) throws SQLException, ParseException
46     {
47        //Parse the date into a normal java.util.Date
48        Date date = formatter.parse((String) value);
49  
50        //Convert the date into a string and set it.
51        query.setString(index++, sasFormatter.format(date));
52        return index;
53     }
54  
55     /***
56      * @param format The format to set.
57      */
58     public void setSasDateFormat(String format)
59     {
60        sasFormatter = new SimpleDateFormat(format);
61     }
62  }