1 24 25 package com.mckoi.jfccontrols; 26 27 import java.math.BigDecimal ; 28 import java.util.ArrayList ; 29 import java.util.Date ; 30 31 import com.mckoi.util.TimeFrame; 32 33 39 40 public class Query implements Cloneable { 41 42 45 private String query_string; 46 47 50 private ArrayList parameters; 51 52 55 public Query(String query) { 56 this.query_string = query; 57 } 58 59 62 private void internalSet(int index, Object ob) { 63 if (parameters == null) { 64 parameters = new ArrayList (); 65 } 66 for (int i = parameters.size(); i < index; ++i) { 67 parameters.add(null); 68 } 69 Object old = parameters.set(index - 1, ob); 70 if (old != null) { 71 } 74 } 75 76 79 public String getString() { 80 return query_string; 81 } 82 83 86 public int parameterCount() { 87 if (parameters == null) { 88 return 0; 89 } 90 return parameters.size(); 91 } 92 93 96 public Object getParameter(int index) { 97 return parameters.get(index); 98 } 99 100 103 public Query changeSQL(String sql) { 104 try { 105 Query query = (Query) clone(); 106 query.query_string = sql; 107 return query; 108 } 109 catch (CloneNotSupportedException e) { 110 throw new Error (e.getMessage()); 111 } 112 } 113 114 117 public String toString() { 118 StringBuffer str = new StringBuffer (); 119 str.append("Query: " + query_string + "\n"); 120 str.append("Parameters: "); 121 for (int i = 0; i < parameterCount(); ++i) { 122 str.append(getParameter(i)); 123 str.append(", "); 124 } 125 return new String (str); 126 } 127 128 129 130 134 public void setString(int para_index, String str) { 135 internalSet(para_index, str); 136 } 137 138 public void setBoolean(int para_index, boolean val) { 139 internalSet(para_index, new Boolean (val)); 140 } 141 142 public void setBigDecimal(int para_index, BigDecimal val) { 143 internalSet(para_index, val); 144 } 145 146 public void setInt(int para_index, int val) { 147 internalSet(para_index, new BigDecimal (val)); 148 } 149 150 public void setLong(int para_index, long val) { 151 internalSet(para_index, new BigDecimal (val)); 152 } 153 154 public void setDouble(int para_index, double val) { 155 internalSet(para_index, new BigDecimal (val)); 156 } 157 158 public void setDate(int para_index, Date val) { 159 internalSet(para_index, val); 160 } 161 162 public void setTimeFrame(int para_index, TimeFrame val) { 163 internalSet(para_index, val.getPeriod()); 164 } 165 166 public void setObject(int para_index, Object val) { 167 if (val == null || 168 val instanceof BigDecimal || 169 val instanceof String || 170 val instanceof Date || 171 val instanceof Boolean ) { 172 internalSet(para_index, val); 173 } 174 else if (val instanceof TimeFrame) { 175 setTimeFrame(para_index, (TimeFrame) val); 176 } 177 else if (val instanceof Integer ) { 178 internalSet(para_index, new BigDecimal (((Integer ) val).intValue())); 179 } 180 else if (val instanceof Long ) { 181 internalSet(para_index, new BigDecimal (((Long ) val).longValue())); 182 } 183 else if (val instanceof Double ) { 184 internalSet(para_index, new BigDecimal (((Double ) val).doubleValue())); 185 } 186 else { 189 setString(para_index, val.toString()); 190 } 191 } 192 193 } 194 | Popular Tags |