]> review.fuel-infra Code Review - packages/trusty/mysql-wsrep-5.6.git/blob
2c9abeec320cd2276ea871063302eeaa802fe296
[packages/trusty/mysql-wsrep-5.6.git] /
1 /*
2    Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
3
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; version 2 of the License.
7
8    This program is distributed in the hope that it will be useful,
9    but WITHOUT ANY WARRANTY; without even the implied warranty of
10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11    GNU General Public License for more details.
12
13    You should have received a copy of the GNU General Public License
14    along with this program; if not, write to the Free Software
15    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
16 */
17
18 package com.mysql.clusterj.openjpa;
19
20 import com.mysql.clusterj.ColumnMetadata;
21 import com.mysql.clusterj.core.spi.DomainTypeHandler;
22 import com.mysql.clusterj.core.spi.ValueHandler;
23 import com.mysql.clusterj.core.util.Logger;
24 import com.mysql.clusterj.core.util.LoggerFactoryService;
25 import java.math.BigDecimal;
26 import java.math.BigInteger;
27 import java.sql.Date;
28 import java.sql.Time;
29 import java.sql.Timestamp;
30 import java.util.BitSet;
31 import org.apache.openjpa.kernel.OpenJPAStateManager;
32
33 /**
34  *
35  */
36 public class NdbOpenJPAValueHandler implements ValueHandler {
37
38     protected OpenJPAStateManager sm;
39
40     private NdbOpenJPAStoreManager store;
41
42     /** My logger */
43     static final Logger logger = LoggerFactoryService.getFactory().getInstance(NdbOpenJPAValueHandler.class);
44
45     protected OpenJPAStateManager getStateManager() {
46         return sm;
47     }
48
49     protected NdbOpenJPAStoreManager getStoreManager() {
50         return store;
51     }
52
53     public NdbOpenJPAValueHandler(OpenJPAStateManager sm) {
54         this.sm = sm;
55     }
56
57     public NdbOpenJPAValueHandler(OpenJPAStateManager sm, NdbOpenJPAStoreManager store) {
58         this.sm = sm;
59         this.store = store;
60     }
61
62     public boolean isNull(int fieldNumber) {
63         return (sm.fetchObject(fieldNumber) == null);
64     }
65
66     public boolean isModified(int fieldNumber) {
67         BitSet modified = sm.getDirty();
68         return modified.get(fieldNumber);
69     }
70
71     public void resetModified() {
72         throw new UnsupportedOperationException("Not supported yet.");
73     }
74
75     public void markModified(int fieldNumber) {
76         throw new UnsupportedOperationException("Not supported yet.");
77     }
78
79     public boolean getBoolean(int fieldNumber) {
80         return sm.fetchBoolean(fieldNumber);
81     }
82
83     public boolean[] getBooleans(int fieldNumber) {
84         throw new UnsupportedOperationException("Not supported yet.");
85     }
86
87     public Boolean getObjectBoolean(int fieldNumber) {
88         return sm.fetchBoolean(fieldNumber);
89     }
90
91     public byte getByte(int fieldNumber) {
92         return sm.fetchByte(fieldNumber);
93     }
94
95     public byte[] getBytes(int fieldNumber) {
96         return (byte[])sm.fetchObject(fieldNumber);
97     }
98
99     public short getShort(int fieldNumber) {
100         return sm.fetchShort(fieldNumber);
101     }
102
103     public int getInt(int fieldNumber) {
104         int value = sm.fetchInt(fieldNumber);
105         if (logger.isDetailEnabled()) logger.detail(" fieldNumber: " + fieldNumber + " value: " + value);
106         return value;
107     }
108
109     public long getLong(int fieldNumber) {
110         long value = sm.fetchLong(fieldNumber);
111         if (logger.isDetailEnabled()) logger.detail(" fieldNumber: " + fieldNumber + " value: " + value);
112         return value;
113     }
114
115     public float getFloat(int fieldNumber) {
116         return sm.fetchFloat(fieldNumber);
117     }
118
119     public double getDouble(int fieldNumber) {
120         return sm.fetchDouble(fieldNumber);
121     }
122
123     public Byte getObjectByte(int fieldNumber) {
124         return (Byte)sm.fetchObject(fieldNumber);
125     }
126
127     public Short getObjectShort(int fieldNumber) {
128         return (Short)sm.fetchObject(fieldNumber);
129     }
130
131     public Integer getObjectInt(int fieldNumber) {
132         Integer value = (Integer)sm.fetchObject(fieldNumber);
133         if (logger.isDetailEnabled()) logger.detail(" fieldNumber: " + fieldNumber + " value: " + value);
134         return value;
135     }
136
137     public Long getObjectLong(int fieldNumber) {
138         return (Long)sm.fetchObject(fieldNumber);
139     }
140
141     public Float getObjectFloat(int fieldNumber) {
142         return (Float)sm.fetchObject(fieldNumber);
143     }
144
145     public Double getObjectDouble(int fieldNumber) {
146         return (Double)sm.fetchObject(fieldNumber);
147     }
148
149     public BigDecimal getBigDecimal(int fieldNumber) {
150         return (BigDecimal)sm.fetchObject(fieldNumber);
151     }
152
153     public BigInteger getBigInteger(int fieldNumber) {
154         return (BigInteger)sm.fetchObject(fieldNumber);
155     }
156
157     public String getString(int fieldNumber) {
158         return sm.fetchString(fieldNumber);
159     }
160
161     public Date getJavaSqlDate(int fieldNumber) {
162         return (java.sql.Date)sm.fetchObject(fieldNumber);
163     }
164
165     public java.util.Date getJavaUtilDate(int fieldNumber) {
166         return (java.util.Date)sm.fetchObject(fieldNumber);
167     }
168
169     public Time getJavaSqlTime(int fieldNumber) {
170         return (java.sql.Time)sm.fetchObject(fieldNumber);
171     }
172
173     public Timestamp getJavaSqlTimestamp(int fieldNumber) {
174         return (java.sql.Timestamp)sm.fetchObject(fieldNumber);
175     }
176
177     public void setBoolean(int fieldNumber, boolean value) {
178         sm.storeBoolean(fieldNumber, value);
179     }
180
181     public void setBooleans(int fieldNumber, boolean[] value) {
182         sm.storeObject(fieldNumber, value);
183     }
184
185     public void setByte(int fieldNumber, byte value) {
186         sm.storeByte(fieldNumber, value);
187     }
188
189     public void setBytes(int fieldNumber, byte[] value) {
190         sm.storeObject(fieldNumber, value);
191     }
192
193     public void setShort(int fieldNumber, short value) {
194         sm.storeShort(fieldNumber, value);
195     }
196
197     public void setInt(int fieldNumber, int value) {
198         if (logger.isDetailEnabled()) logger.detail(" fieldNumber: " + fieldNumber + " value: " + value);
199 //        if (fieldNumber == 0) dumpStackTrace();
200         sm.storeInt(fieldNumber, value);
201     }
202
203     public void setLong(int fieldNumber, long value) {
204         sm.storeLong(fieldNumber, value);
205     }
206
207     public void setFloat(int fieldNumber, float value) {
208         sm.storeFloat(fieldNumber, value);
209     }
210
211     public void setDouble(int fieldNumber, double value) {
212         sm.storeDouble(fieldNumber, value);
213     }
214
215     public void setObjectBoolean(int fieldNumber, Boolean value) {
216         sm.storeObject(fieldNumber, value);
217     }
218
219     public void setObjectByte(int fieldNumber, Byte value) {
220         sm.storeObject(fieldNumber, value);
221     }
222
223     public void setObjectShort(int fieldNumber, Short value) {
224         sm.storeObject(fieldNumber, value);
225     }
226
227     public void setObjectInt(int fieldNumber, Integer value) {
228         if (logger.isDetailEnabled()) logger.detail(" fieldNumber: " + fieldNumber + " value: " + value);
229         sm.storeObject(fieldNumber, value);
230     }
231
232     public void setObjectLong(int fieldNumber, Long value) {
233         sm.storeObject(fieldNumber, value);
234     }
235
236     public void setObjectFloat(int fieldNumber, Float value) {
237         sm.storeObject(fieldNumber, value);
238     }
239
240     public void setObjectDouble(int fieldNumber, Double value) {
241         sm.storeObject(fieldNumber, value);
242     }
243
244     public void setBigDecimal(int fieldNumber, BigDecimal value) {
245         sm.storeObject(fieldNumber, value);
246     }
247
248     public void setBigInteger(int fieldNumber, BigInteger value) {
249         sm.storeObject(fieldNumber, value);
250     }
251
252     public void setString(int fieldNumber, String value) {
253         sm.storeString(fieldNumber, value);
254     }
255
256     public void setObject(int fieldNumber, Object value) {
257         sm.storeObject(fieldNumber, value);
258     }
259
260     public void setJavaSqlDate(int fieldNumber, Date value) {
261         sm.storeObject(fieldNumber, value);
262     }
263
264     public void setJavaUtilDate(int fieldNumber, java.util.Date value) {
265         sm.storeObject(fieldNumber, value);
266     }
267
268     public void setJavaSqlTime(int fieldNumber, Time value) {
269         sm.storeObject(fieldNumber, value);
270     }
271
272     public void setJavaSqlTimestamp(int fieldNumber, Timestamp value) {
273         sm.storeObject(fieldNumber, value);
274     }
275
276     public String pkToString(DomainTypeHandler<?> domainTypeHandler) {
277         StringBuffer sb = new StringBuffer(" key: [");
278         int[] keys = domainTypeHandler.getKeyFieldNumbers();
279         String separator = "";
280         for (int i: keys) {
281             sb.append(separator);
282             sb.append(sm.fetch(i));
283             separator = ";";
284         }
285         sb.append("]");
286         return sb.toString();
287     }
288
289     @SuppressWarnings("unused")
290     private void dumpStackTrace() {
291         Throwable t = new Throwable();
292         t.printStackTrace();
293     }
294
295     public void found(Boolean found) {
296         throw new UnsupportedOperationException("Not supported yet.");
297     }
298
299     public ColumnMetadata[] columnMetadata() {
300         throw new UnsupportedOperationException("Not supported yet.");
301     }
302
303     public Boolean found() {
304         throw new UnsupportedOperationException("Not supported yet.");
305     }
306
307     public Object get(int columnNumber) {
308         throw new UnsupportedOperationException("Not supported yet.");
309     }
310
311     public void set(int columnNumber, Object value) {
312         throw new UnsupportedOperationException("Not supported yet.");
313     }
314
315 }