001 package org.apache.ojb.broker.accesslayer.conversions;
002
003 /* Copyright 2002-2005 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 import java.io.Serializable;
019
020 import org.apache.commons.lang.SerializationUtils;
021
022 /**
023 * This implementation of the FieldConversion interface converts
024 * between java.lang.Objects values and byte[] values in the rdbms.
025 * This conversion is useful to store serialized objects in database
026 * columns.
027 */
028 public class Object2ByteArrUncompressedFieldConversion implements FieldConversion
029 {
030
031 /*
032 * @see FieldConversion#javaToSql(Object)
033 */
034 public Object javaToSql(Object source)
035 {
036 if (source == null)
037 return null;
038 try
039 {
040 return SerializationUtils.serialize((Serializable) source);
041 }
042 catch(Throwable t)
043 {
044 throw new ConversionException(t);
045 }
046 }
047
048 /*
049 * @see FieldConversion#sqlToJava(Object)
050 */
051 public Object sqlToJava(Object source)
052 {
053 if(source == null)
054 return null;
055 try
056 {
057 return SerializationUtils.deserialize((byte[]) source);
058 }
059 catch(Throwable t)
060 {
061 throw new ConversionException(t);
062 }
063 }
064
065 }