docs: static FieldType newFieldType(JdbcType jdbcType)
      {
          FieldType result = null;
          switch (jdbcType.getType())
          {
              case Types.ARRAY:
                  result = new ArrayFieldType();
                  break;
              case Types.BIGINT:
                  result = new LongFieldType();
                  break;
              case Types.BINARY:
                  result = new ByteArrayFieldType();
                  break;
              case Types.BIT:
                  result = new BooleanFieldType();
                  break;
              case Types.BLOB:
                  result = new BlobFieldType();
                  break;
              case Types.CHAR:
                  result = new StringFieldType();
                  break;
              case Types.CLOB:
                  result = new ClobFieldType();
                  break;
              case Types.DATE:
                  result = new DateFieldType();
                  break;
              case Types.DECIMAL:
                  result = new BigDecimalFieldType();
                  break;
  // Not needed, user have to use the underlying sql datatype in OJB mapping files
  //            case Types.DISTINCT:
  //                result = new DistinctFieldType();
  //                break;
              case Types.DOUBLE:
                  result = new DoubleFieldType();
                  break;
              case Types.FLOAT:
                  result = new FloatFieldType();
                  break;
              case Types.INTEGER:
                  result = new IntegerFieldType();
                  break;
              case Types.JAVA_OBJECT:
                  result = new JavaObjectFieldType();
                  break;
              case Types.LONGVARBINARY:
                  result = new ByteArrayFieldType();
                  break;
              case Types.LONGVARCHAR:
                  result = new StringFieldType();
                  break;
              case Types.NUMERIC:
                  result = new BigDecimalFieldType();
                  break;
              case Types.REAL:
                  result = new FloatFieldType();
                  break;
              case Types.REF:
                  result = new RefFieldType();
                  break;
              case Types.SMALLINT:
                  result = new ShortFieldType();
                  break;
              case Types.STRUCT:
                  result = new StructFieldType();
                  break;
              case Types.TIME:
                  result = new TimeFieldType();
                  break;
              case Types.TIMESTAMP:
                  result = new TimestampFieldType();
                  break;
              case Types.TINYINT:
                  result = new ByteFieldType();
                  break;
              case Types.VARBINARY:
                  result = new ByteArrayFieldType();
                  break;
              case Types.VARCHAR:
                  result = new StringFieldType();
                  break;
              case Types.OTHER:
                  result = new JavaObjectFieldType();
                  break;
  //
  //            case Types.NULL:
  //                result = new NullFieldType();
  //                break;
  
  //#ifdef JDBC30
              case Types.BOOLEAN:
                  result = new BooleanFieldType();
                  break;
              case Types.DATALINK:
                  result = new URLFieldType();
                  break;
  //#endif
              default:
                  throw new OJBRuntimeException("Unkown or not supported field type specified, specified jdbc type was '"
                          + jdbcType + "', as string: " + JdbcTypesHelper.getSqlTypeAsString(jdbcType.getType()));
          }
          // make sure that the sql type was set
          result.setSqlType(jdbcType);
          return result;
      }