Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * $Id$
   *
   * Firebird Open Source J2ee connector - jdbc driver
   *
   * Distributable under LGPL license.
   * You may obtain a copy of the License at http://www.gnu.org/copyleft/lgpl.html
   *
   * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * LGPL License for more details.
  *
  * This file was created by members of the firebird development team.
  * All individual contributions remain the Copyright (C) of those
  * individuals.  Contributors to this file are either listed here or
  * can be obtained from a CVS history command.
  *
  * All rights reserved.
  */
 package org.firebirdsql.jdbc.field;
 
 
FBField implementation for java.sql.Types.BOOLEAN (Firebird type org.firebirdsql.gds.ISCConstants.SQL_BOOLEAN).

This field type is only supported on Firebird 3.0

Author(s):
Mark Rotteveel
Since:
2.2.4
 
 public class FBBooleanField extends FBField {
     // TODO Evaluate current choices for truth values for non-boolean types (especially if number types != 0 are all true)
 
     FBBooleanField(XSQLVAR fieldFieldDataProvider dataProviderint requiredTypethrows SQLException {
         super(fielddataProviderrequiredType);
     }
 
     public byte getByte() throws SQLException {
         if (isNull()) {
             return ;
         }
         return (byte) (getBoolean() ? 1 : 0);
     }
 
     public short getShort() throws SQLException {
         return getByte();
     }
 
     public int getInt() throws SQLException {
         if (isNull()) {
             return ;
         }
         return getBoolean() ? 1 : 0;
     }
 
     public long getLong() throws SQLException {
         return getInt();
     }
 
     public float getFloat() throws SQLException {
         return getInt();
     }
 
     public double getDouble() throws SQLException {
         return getInt();
     }
 
     public BigDecimal getBigDecimal() throws SQLException {
         if (isNull()) {
             return ;
         }
         return getBoolean() ? . : .;
     }
 
     public String getString() throws SQLException {
         if (isNull()) {
             return ;
         }
         return getBoolean() ? . : .;
     }
 
     public boolean getBoolean() throws SQLException {
         if (isNull()) {
             return ;
         }
         return .decodeBoolean(getFieldData());
     }
 
     public void setByte(byte valuethrows SQLException {
         setBoolean(value != 0);
     }
 
     public void setShort(short valuethrows SQLException {
        setBoolean(value != 0);
    }
    public void setInteger(int valuethrows SQLException {
        setBoolean(value != 0);
    }
    public void setLong(long valuethrows SQLException {
        setBoolean(value != 0);
    }
    public void setFloat(float valuethrows SQLException {
        //TODO What if NaN?
        setBoolean(value != 0);
    }
    public void setDouble(double valuethrows SQLException {
        //TODO What if NaN?
        setBoolean(value != 0);
    }
    public void setBigDecimal(BigDecimal valuethrows SQLException {
        if (value == null) {
            setNull();
        } else {
            setBoolean(value.compareTo(.) != 0);
        }
    }

    

Uses similar rules as FBStringField.getBoolean(). Sets this boolean to true for (case insensitive, ignoring whitespace):

  • true
  • Y
  • T
  • 1
Sets to false for all other values.
    public void setString(String valuethrows SQLException {
        if (value == null) {
            setNull();
        } else {
            final String trimmedValue = value.trim();
            setBoolean(trimmedValue.equalsIgnoreCase(.)
                    || trimmedValue.equalsIgnoreCase(.)
                    || trimmedValue.equalsIgnoreCase(.)
                    || trimmedValue.equalsIgnoreCase(.));
        }
    }
    public void setBoolean(boolean valuethrows SQLException {
        setFieldData(.encodeBoolean(value));
    }
New to GrepCode? Check out our FAQ X