def test_from_java_type(self): basic_int_type_info = Types.INT() self.assertEqual(basic_int_type_info, _from_java_type(basic_int_type_info.get_java_type_info())) basic_short_type_info = Types.SHORT() self.assertEqual(basic_short_type_info, _from_java_type(basic_short_type_info.get_java_type_info())) basic_long_type_info = Types.LONG() self.assertEqual(basic_long_type_info, _from_java_type(basic_long_type_info.get_java_type_info())) basic_float_type_info = Types.FLOAT() self.assertEqual(basic_float_type_info, _from_java_type(basic_float_type_info.get_java_type_info())) basic_double_type_info = Types.DOUBLE() self.assertEqual(basic_double_type_info, _from_java_type(basic_double_type_info.get_java_type_info())) basic_char_type_info = Types.CHAR() self.assertEqual(basic_char_type_info, _from_java_type(basic_char_type_info.get_java_type_info())) basic_byte_type_info = Types.BYTE() self.assertEqual(basic_byte_type_info, _from_java_type(basic_byte_type_info.get_java_type_info())) basic_big_int_type_info = Types.BIG_INT() self.assertEqual(basic_big_int_type_info, _from_java_type(basic_big_int_type_info.get_java_type_info())) basic_big_dec_type_info = Types.BIG_DEC() self.assertEqual(basic_big_dec_type_info, _from_java_type(basic_big_dec_type_info.get_java_type_info())) basic_sql_date_type_info = Types.SQL_DATE() self.assertEqual(basic_sql_date_type_info, _from_java_type(basic_sql_date_type_info.get_java_type_info())) basic_sql_time_type_info = Types.SQL_TIME() self.assertEqual(basic_sql_time_type_info, _from_java_type(basic_sql_time_type_info.get_java_type_info())) basic_sql_timestamp_type_info = Types.SQL_TIMESTAMP() self.assertEqual(basic_sql_timestamp_type_info, _from_java_type(basic_sql_timestamp_type_info.get_java_type_info())) row_type_info = Types.ROW([Types.INT(), Types.STRING()]) self.assertEqual(row_type_info, _from_java_type(row_type_info.get_java_type_info())) tuple_type_info = Types.TUPLE([Types.CHAR(), Types.INT()]) self.assertEqual(tuple_type_info, _from_java_type(tuple_type_info.get_java_type_info())) primitive_int_array_type_info = Types.PRIMITIVE_ARRAY(Types.INT()) self.assertEqual(primitive_int_array_type_info, _from_java_type(primitive_int_array_type_info.get_java_type_info())) object_array_type_info = Types.OBJECT_ARRAY(Types.SQL_DATE()) self.assertEqual(object_array_type_info, _from_java_type(object_array_type_info.get_java_type_info())) pickled_byte_array_type_info = Types.PICKLED_BYTE_ARRAY() self.assertEqual(pickled_byte_array_type_info, _from_java_type(pickled_byte_array_type_info.get_java_type_info())) sql_date_type_info = Types.SQL_DATE() self.assertEqual(sql_date_type_info, _from_java_type(sql_date_type_info.get_java_type_info())) map_type_info = Types.MAP(Types.INT(), Types.STRING()) self.assertEqual(map_type_info, _from_java_type(map_type_info.get_java_type_info())) list_type_info = Types.LIST(Types.INT()) self.assertEqual(list_type_info, _from_java_type(list_type_info.get_java_type_info()))
def to_java_typeinfo(type_info: TypeInformation): if isinstance(type_info, BasicTypeInfo): basic_type = type_info._basic_type if basic_type == BasicType.STRING: j_typeinfo = JTypes.STRING elif basic_type == BasicType.BYTE: j_typeinfo = JTypes.LONG elif basic_type == BasicType.BOOLEAN: j_typeinfo = JTypes.BOOLEAN elif basic_type == BasicType.SHORT: j_typeinfo = JTypes.LONG elif basic_type == BasicType.INT: j_typeinfo = JTypes.LONG elif basic_type == BasicType.LONG: j_typeinfo = JTypes.LONG elif basic_type == BasicType.FLOAT: j_typeinfo = JTypes.DOUBLE elif basic_type == BasicType.DOUBLE: j_typeinfo = JTypes.DOUBLE elif basic_type == BasicType.CHAR: j_typeinfo = JTypes.STRING elif basic_type == BasicType.BIG_INT: j_typeinfo = JTypes.BIG_INT elif basic_type == BasicType.BIG_DEC: j_typeinfo = JTypes.BIG_DEC elif basic_type == BasicType.INSTANT: j_typeinfo = JTypes.INSTANT else: raise TypeError("Invalid BasicType %s." % basic_type) elif isinstance(type_info, PrimitiveArrayTypeInfo): element_type = type_info._element_type if element_type == Types.BOOLEAN(): j_typeinfo = JPrimitiveArrayTypeInfo.BOOLEAN_PRIMITIVE_ARRAY_TYPE_INFO elif element_type == Types.BYTE(): j_typeinfo = JPrimitiveArrayTypeInfo.BYTE_PRIMITIVE_ARRAY_TYPE_INFO elif element_type == Types.SHORT(): j_typeinfo = JPrimitiveArrayTypeInfo.SHORT_PRIMITIVE_ARRAY_TYPE_INFO elif element_type == Types.INT(): j_typeinfo = JPrimitiveArrayTypeInfo.INT_PRIMITIVE_ARRAY_TYPE_INFO elif element_type == Types.LONG(): j_typeinfo = JPrimitiveArrayTypeInfo.LONG_PRIMITIVE_ARRAY_TYPE_INFO elif element_type == Types.FLOAT(): j_typeinfo = JPrimitiveArrayTypeInfo.FLOAT_PRIMITIVE_ARRAY_TYPE_INFO elif element_type == Types.DOUBLE(): j_typeinfo = JPrimitiveArrayTypeInfo.DOUBLE_PRIMITIVE_ARRAY_TYPE_INFO elif element_type == Types.CHAR(): j_typeinfo = JPrimitiveArrayTypeInfo.CHAR_PRIMITIVE_ARRAY_TYPE_INFO else: raise TypeError("Invalid element type for a primitive array.") elif isinstance(type_info, BasicArrayTypeInfo): element_type = type_info._element_type if element_type == Types.BOOLEAN(): j_typeinfo = JBasicArrayTypeInfo.BOOLEAN_ARRAY_TYPE_INFO elif element_type == Types.BYTE(): j_typeinfo = JBasicArrayTypeInfo.BYTE_ARRAY_TYPE_INFO elif element_type == Types.SHORT(): j_typeinfo = JBasicArrayTypeInfo.SHORT_ARRAY_TYPE_INFO elif element_type == Types.INT(): j_typeinfo = JBasicArrayTypeInfo.INT_ARRAY_TYPE_INFO elif element_type == Types.LONG(): j_typeinfo = JBasicArrayTypeInfo.LONG_ARRAY_TYPE_INFO elif element_type == Types.FLOAT(): j_typeinfo = JBasicArrayTypeInfo.FLOAT_ARRAY_TYPE_INFO elif element_type == Types.DOUBLE(): j_typeinfo = JBasicArrayTypeInfo.DOUBLE_ARRAY_TYPE_INFO elif element_type == Types.CHAR(): j_typeinfo = JBasicArrayTypeInfo.CHAR_ARRAY_TYPE_INFO elif element_type == Types.STRING(): j_typeinfo = JBasicArrayTypeInfo.STRING_ARRAY_TYPE_INFO else: raise TypeError("Invalid element type for a basic array.") elif isinstance(type_info, ObjectArrayTypeInfo): element_type = type_info._element_type j_typeinfo = JTypes.OBJECT_ARRAY(to_java_typeinfo(element_type)) elif isinstance(type_info, MapTypeInfo): j_key_typeinfo = to_java_typeinfo(type_info._key_type_info) j_value_typeinfo = to_java_typeinfo(type_info._value_type_info) j_typeinfo = JMapTypeInfo(j_key_typeinfo, j_value_typeinfo) else: j_typeinfo = JPickledByteArrayTypeInfo.PICKLED_BYTE_ARRAY_TYPE_INFO return j_typeinfo