public static Object deserialize()

in src/main/java/org/apache/flink/connector/rocketmq/source/util/StringSerializer.java [49:130]


    public static Object deserialize(
            String value,
            ByteSerializer.ValueType type,
            DataType dataType,
            Set<String> nullValues,
            Boolean isRGData) {
        if (null != nullValues && nullValues.contains(value)) {
            return null;
        }
        switch (type) {
            case V_ByteArray: // byte[]
                if (isRGData) {
                    byte[] bytes = null;
                    try {
                        bytes = DECODER.decode(value);
                    } catch (Exception e) {
                        //
                    }
                    return bytes;
                } else {
                    return value.getBytes();
                }
            case V_String:
                return BinaryStringData.fromString(value);
            case V_Byte: // byte
                return null == value ? null : Byte.parseByte(value);
            case V_Short:
                return null == value ? null : Short.parseShort(value);
            case V_Integer:
                return null == value ? null : Integer.parseInt(value);
            case V_Long:
                return null == value ? null : Long.parseLong(value);
            case V_Float:
                return null == value ? null : Float.parseFloat(value);
            case V_Double:
                return null == value ? null : Double.parseDouble(value);
            case V_Boolean:
                return null == value ? null : parseBoolean(value);
            case V_Timestamp: // sql.Timestamp encoded as long
                if (isRGData) {
                    return null == value ? null : Long.parseLong(value);
                }
                if (null == value) {
                    return null;
                } else {
                    try {
                        return timestampConverter.toInternal(new Timestamp(Long.parseLong(value)));
                    } catch (NumberFormatException e) {
                        return timestampConverter.toInternal(Timestamp.valueOf(value));
                    }
                }
            case V_Date: // sql.Date encoded as long
                if (isRGData) {
                    return null == value ? null : Long.parseLong(value);
                }
                return null == value
                        ? null
                        : DataFormatConverters.DateConverter.INSTANCE.toInternal(
                                Date.valueOf(value));
            case V_Time: // sql.Time encoded as long
                if (isRGData) {
                    return null == value ? null : Long.parseLong(value);
                }
                return null == value
                        ? null
                        : DataFormatConverters.TimeConverter.INSTANCE.toInternal(
                                new Time(Long.parseLong(value)));
            case V_BigDecimal:
                DecimalType decimalType = (DecimalType) dataType.getLogicalType();
                return value == null
                        ? null
                        : DecimalData.fromBigDecimal(
                                new BigDecimal(value),
                                decimalType.getPrecision(),
                                decimalType.getScale());
            case V_BigInteger:
                return null == value ? null : new BigInteger(value);

            default:
                throw new IllegalArgumentException();
        }
    }