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 /**
019 * this implementation of the FieldConversion interface converts
020 * int to Integer, Integer to int. If the int is zero, then
021 * we don't have a value for the key and it must be set to null, not
022 * zero.
023 * @author Aaron Oathout
024 * @version $Id: Int2IntegerFieldConversion.java,v 1.1 2007-08-24 22:17:31 ewestfal Exp $
025 */
026 public class Int2IntegerFieldConversion implements FieldConversion
027 {
028
029 private static final Integer NULL_INTEGER = null;
030 private static final Integer ZERO = new Integer(0);
031
032 public Object javaToSql(Object obj) throws ConversionException
033 {
034 if (obj instanceof Integer)
035 {
036 Integer instance = (Integer) obj;
037 if (instance.equals(ZERO))
038 {
039 return NULL_INTEGER;
040 }
041 else
042 {
043 return obj;
044 }
045 }
046 else
047 {
048 return obj;
049 }
050 }
051
052 public Object sqlToJava(Object obj) throws ConversionException
053 {
054 return obj;
055 }
056 }