private static void populateDoubleConversions()

in jdbc/src/main/java/software/amazon/timestream/jdbc/Conversions.java [131:202]


  private static void populateDoubleConversions(
    final Map<TimestreamDataType, Map<JdbcType, TimestreamConvertFunction<?>>> map) {
    final Map<JdbcType, TimestreamConvertFunction<?>> doubleConversions = new EnumMap<>(
      JdbcType.class);

    addCommonNumericConversions(doubleConversions);
    doubleConversions.put(JdbcType.BOOLEAN,
      (data, callback) -> Double.parseDouble(data.getScalarValue()) != 0.0);
    doubleConversions.put(JdbcType.TINYINT, (data, callback) -> {
      final BigDecimal value = validateValueRange(
        data.getScalarValue(),
        BYTE_MIN,
        BYTE_MAX,
        JDBCType.TINYINT);

      if (value.stripTrailingZeros().scale() > 0) {
        callback.accept(new SQLWarning(Warning.lookup(
          Warning.VALUE_TRUNCATED,
          TimestreamDataType.DOUBLE,
          JdbcType.TINYINT)));
      }

      return value.byteValue();
    });
    doubleConversions.put(JdbcType.SMALLINT, (data, callback) -> {
      final BigDecimal value = validateValueRange(
        data.getScalarValue(),
        SHORT_MIN,
        SHORT_MAX,
        JDBCType.SMALLINT);

      if (value.stripTrailingZeros().scale() > 0) {
        callback.accept(new SQLWarning(Warning.lookup(
          Warning.VALUE_TRUNCATED,
          TimestreamDataType.DOUBLE,
          JdbcType.SMALLINT)));
      }
      return value.shortValue();
    });
    doubleConversions.put(JdbcType.INTEGER, (data, callback) -> {
      final BigDecimal value = validateValueRange(
        data.getScalarValue(),
        INT_MIN,
        INT_MAX,
        JDBCType.INTEGER);

      if (value.stripTrailingZeros().scale() > 0) {
        callback.accept(new SQLWarning(Warning.lookup(
          Warning.VALUE_TRUNCATED,
          TimestreamDataType.DOUBLE,
          JdbcType.INTEGER)));
      }

      return value.intValue();
    });
    doubleConversions.put(JdbcType.BIGINT, (data, callback) -> {
      final BigDecimal value = validateValueRange(
        data.getScalarValue(),
        LONG_MIN,
        LONG_MAX,
        JDBCType.BIGINT);

      if (value.stripTrailingZeros().scale() > 0) {
        callback.accept(new SQLWarning(Warning.lookup(
          Warning.VALUE_TRUNCATED,
          TimestreamDataType.DOUBLE,
          JdbcType.BIGINT)));
      }
      return value.longValue();
    });
    map.put(TimestreamDataType.DOUBLE, doubleConversions);
  }