Optional javaToWritable()

in flink-connector-hive/src/main/java/org/apache/flink/table/catalog/hive/client/HiveShimV100.java [521:559]


    Optional<Writable> javaToWritable(@Nonnull Object value) {
        Writable writable = null;
        // in case value is already a Writable
        if (value instanceof Writable) {
            writable = (Writable) value;
        } else if (value instanceof Boolean) {
            writable = new BooleanWritable((Boolean) value);
        } else if (value instanceof Byte) {
            writable = new ByteWritable((Byte) value);
        } else if (value instanceof Short) {
            writable = new ShortWritable((Short) value);
        } else if (value instanceof Integer) {
            writable = new IntWritable((Integer) value);
        } else if (value instanceof Long) {
            writable = new LongWritable((Long) value);
        } else if (value instanceof Float) {
            writable = new FloatWritable((Float) value);
        } else if (value instanceof Double) {
            writable = new DoubleWritable((Double) value);
        } else if (value instanceof String) {
            writable = new Text((String) value);
        } else if (value instanceof HiveChar) {
            writable = new HiveCharWritable((HiveChar) value);
        } else if (value instanceof HiveVarchar) {
            writable = new HiveVarcharWritable((HiveVarchar) value);
        } else if (value instanceof HiveDecimal) {
            writable = new HiveDecimalWritable((HiveDecimal) value);
        } else if (value instanceof Date) {
            writable = new DateWritable((Date) value);
        } else if (value instanceof Timestamp) {
            writable = new TimestampWritable((Timestamp) value);
        } else if (value instanceof BigDecimal) {
            HiveDecimal hiveDecimal = HiveDecimal.create((BigDecimal) value);
            writable = new HiveDecimalWritable(hiveDecimal);
        } else if (value instanceof byte[]) {
            writable = new BytesWritable((byte[]) value);
        }
        return Optional.ofNullable(writable);
    }