1 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.util.ArrayList ; 27 import java.util.List ; 28 import java.util.StringTokenizer ; 29 30 36 public class StringArraySetter extends AbstractArraySetter 37 { 38 private String token; 39 40 43 public String getReplacementString(Object value) 44 { 45 if (token != null && (value instanceof String )) 46 { 47 List tokens = new ArrayList (); 48 for (StringTokenizer st = new StringTokenizer ((String ) value, token); st.hasMoreTokens();) 49 { 50 tokens.add(st.nextToken()); 51 } 52 53 value = (String []) tokens.toArray(new String [] {}); 54 } 55 56 return super.getReplacementString(value); 57 } 58 59 63 public int set(PreparedStatement query, int index, Object value) throws SQLException , ParseException 64 { 65 String [] values = (value instanceof String []) ? (String []) value : new String [] 66 { (String ) value }; 67 68 if (token != null && (value instanceof String )) 69 { 70 List tokens = new ArrayList (); 71 for (StringTokenizer st = new StringTokenizer ((String ) value, token); st.hasMoreTokens();) 72 { 73 String token = st.nextToken(); 74 tokens.add(token); 75 } 76 77 values = (String []) tokens.toArray(new String [] {}); 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 92 public void setToken(String token) 93 { 94 this.token = token; 95 } 96 } | Popular Tags |