1 package org.apache.ojb.broker.accesslayer.conversions;
2
3 /* Copyright 2002-2005 The Apache Software Foundation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 import java.io.Serializable;
19
20 import org.apache.commons.lang.SerializationUtils;
21
22 /**
23 * This implementation of the FieldConversion interface converts
24 * between java.lang.Objects values and byte[] values in the rdbms.
25 * This conversion is useful to store serialized objects in database
26 * columns.
27 */
28 public class Object2ByteArrUncompressedFieldConversion implements FieldConversion
29 {
30
31 /*
32 * @see FieldConversion#javaToSql(Object)
33 */
34 public Object javaToSql(Object source)
35 {
36 if (source == null)
37 return null;
38 try
39 {
40 return SerializationUtils.serialize((Serializable) source);
41 }
42 catch(Throwable t)
43 {
44 throw new ConversionException(t);
45 }
46 }
47
48 /*
49 * @see FieldConversion#sqlToJava(Object)
50 */
51 public Object sqlToJava(Object source)
52 {
53 if(source == null)
54 return null;
55 try
56 {
57 return SerializationUtils.deserialize((byte[]) source);
58 }
59 catch(Throwable t)
60 {
61 throw new ConversionException(t);
62 }
63 }
64
65 }