KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > mlw > vlh > adapter > jdbc > util > setter > StringArraySetter


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 JavaDoc;
24 import java.sql.SQLException JavaDoc;
25 import java.text.ParseException JavaDoc;
26 import java.util.ArrayList JavaDoc;
27 import java.util.List JavaDoc;
28 import java.util.StringTokenizer JavaDoc;
29
30 /**
31  * Consumes a String[] and sets multiple String(s) on the Statement.
32  *
33  * @author Matthew L. Wilson
34  * @version $Revision: 1.6 $ $Date: 2005/12/19 10:58:01 $
35  */

36 public class StringArraySetter extends AbstractArraySetter
37 {
38    private String JavaDoc token;
39
40    /**
41     * @see net.mlw.vlh.adapter.jdbc.util.Setter#getReplacementString(java.lang.Object)
42     */

43    public String JavaDoc getReplacementString(Object JavaDoc value)
44    {
45       if (token != null && (value instanceof String JavaDoc))
46       {
47          List JavaDoc tokens = new ArrayList JavaDoc();
48          for (StringTokenizer JavaDoc st = new StringTokenizer JavaDoc((String JavaDoc) value, token); st.hasMoreTokens();)
49          {
50             tokens.add(st.nextToken());
51          }
52
53          value = (String JavaDoc[]) tokens.toArray(new String JavaDoc[] {});
54       }
55
56       return super.getReplacementString(value);
57    }
58
59    /**
60     * @see net.mlw.vlh.adapter.jdbc.util.Setter#set(java.sql.PreparedStatement, int,
61     * java.lang.Object)
62     */

63    public int set(PreparedStatement JavaDoc query, int index, Object JavaDoc value) throws SQLException JavaDoc, ParseException JavaDoc
64    {
65       String JavaDoc[] values = (value instanceof String JavaDoc[]) ? (String JavaDoc[]) value : new String JavaDoc[]
66       { (String JavaDoc) value };
67
68       if (token != null && (value instanceof String JavaDoc))
69       {
70          List JavaDoc tokens = new ArrayList JavaDoc();
71          for (StringTokenizer JavaDoc st = new StringTokenizer JavaDoc((String JavaDoc) value, token); st.hasMoreTokens();)
72          {
73             String JavaDoc token = st.nextToken();
74             tokens.add(token);
75          }
76
77          values = (String JavaDoc[]) tokens.toArray(new String JavaDoc[] {});
78       }
79
80       for (int i = 0, length = values.length; i < length; i++)
81       {
82          query.setString(index++, values[i]);
83       }
84
85       return index;
86    }
87
88    /**
89     * @param token
90     * The token to set.
91     */

92    public void setToken(String JavaDoc token)
93    {
94       this.token = token;
95    }
96 }
Popular Tags