@Test public void testParseMap() { String name = "map<int,bigint>"; TypeInfo typeInfo = TypeInfoParser.getTypeInfoFromTypeString(name); Assert.assertTrue(typeInfo instanceof MapTypeInfo); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.MAP); Assert.assertEquals(typeInfo.getTypeName(), name.toUpperCase()); Assert.assertEquals(((MapTypeInfo) typeInfo).getKeyTypeInfo(), TypeInfoFactory.INT); Assert.assertEquals(((MapTypeInfo) typeInfo).getValueTypeInfo(), TypeInfoFactory.BIGINT); name = "MAP<String,Array<int>>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(name); Assert.assertTrue(typeInfo instanceof MapTypeInfo); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.MAP); Assert.assertEquals(typeInfo.getTypeName(), name.toUpperCase()); Assert.assertEquals(((MapTypeInfo) typeInfo).getKeyTypeInfo(), TypeInfoFactory.STRING); Assert.assertTrue(((MapTypeInfo) typeInfo).getValueTypeInfo() instanceof ArrayTypeInfo); Assert.assertEquals(((MapTypeInfo) typeInfo).getValueTypeInfo().getOdpsType(), OdpsType.ARRAY); Assert.assertEquals( ((ArrayTypeInfo) (((MapTypeInfo) typeInfo).getValueTypeInfo())).getElementTypeInfo(), TypeInfoFactory.INT); name = "MAP<DECIMAL(5,2),DECIMAL>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(name); Assert.assertTrue(typeInfo instanceof MapTypeInfo); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.MAP); Assert.assertEquals(typeInfo.getTypeName(), name.toUpperCase()); Assert.assertTrue(((MapTypeInfo) typeInfo).getKeyTypeInfo() instanceof DecimalTypeInfo); Assert.assertEquals(((MapTypeInfo) typeInfo).getKeyTypeInfo().getOdpsType(), OdpsType.DECIMAL); Assert.assertEquals( ((DecimalTypeInfo) (((MapTypeInfo) typeInfo).getKeyTypeInfo())).getPrecision(), 5); Assert.assertEquals( ((DecimalTypeInfo) (((MapTypeInfo) typeInfo).getKeyTypeInfo())).getScale(), 2); Assert.assertEquals(((MapTypeInfo) typeInfo).getValueTypeInfo(), TypeInfoFactory.DECIMAL); name = "map<varchar(10),int>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(name); Assert.assertTrue(typeInfo instanceof MapTypeInfo); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.MAP); Assert.assertEquals(typeInfo.getTypeName(), name.toUpperCase()); Assert.assertTrue(((MapTypeInfo) typeInfo).getKeyTypeInfo() instanceof VarcharTypeInfo); Assert.assertEquals(((MapTypeInfo) typeInfo).getKeyTypeInfo().getOdpsType(), OdpsType.VARCHAR); Assert.assertEquals( ((VarcharTypeInfo) (((MapTypeInfo) typeInfo).getKeyTypeInfo())).getLength(), 10); Assert.assertEquals(((MapTypeInfo) typeInfo).getValueTypeInfo(), TypeInfoFactory.INT); name = "map<tinyint,char(2)>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(name); Assert.assertTrue(typeInfo instanceof MapTypeInfo); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.MAP); Assert.assertEquals(typeInfo.getTypeName(), name.toUpperCase()); Assert.assertEquals(((MapTypeInfo) typeInfo).getKeyTypeInfo(), TypeInfoFactory.TINYINT); Assert.assertEquals(((MapTypeInfo) typeInfo).getValueTypeInfo().getOdpsType(), OdpsType.CHAR); Assert.assertTrue(((MapTypeInfo) typeInfo).getValueTypeInfo() instanceof CharTypeInfo); Assert.assertEquals( ((CharTypeInfo) (((MapTypeInfo) typeInfo).getValueTypeInfo())).getLength(), 2); name = "map<decimal,struct<name:String,age:int>>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(name); Assert.assertTrue(typeInfo instanceof MapTypeInfo); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.MAP); Assert.assertEquals(typeInfo.getTypeName(), "MAP<DECIMAL,STRUCT<name:STRING,age:INT>>"); Assert.assertEquals(((MapTypeInfo) typeInfo).getKeyTypeInfo(), TypeInfoFactory.DECIMAL); Assert.assertEquals(((MapTypeInfo) typeInfo).getValueTypeInfo().getOdpsType(), OdpsType.STRUCT); Assert.assertTrue(((MapTypeInfo) typeInfo).getValueTypeInfo() instanceof StructTypeInfo); Assert.assertArrayEquals( ((StructTypeInfo) (((MapTypeInfo) typeInfo).getValueTypeInfo())).getFieldNames().toArray(), new String[]{"name", "age"}); Assert.assertArrayEquals( ((StructTypeInfo) (((MapTypeInfo) typeInfo).getValueTypeInfo())).getFieldTypeInfos() .toArray(), new TypeInfo[]{TypeInfoFactory.STRING, TypeInfoFactory.INT}); }
public static TypeInfo getTypeInfoFromTypeString(String name) { return new TypeInfoParser(name).parseTypeInfo(); }
TypeInfoParser { public static TypeInfo getTypeInfoFromTypeString(String name) { return new TypeInfoParser(name).parseTypeInfo(); } }
TypeInfoParser { public static TypeInfo getTypeInfoFromTypeString(String name) { return new TypeInfoParser(name).parseTypeInfo(); } TypeInfoParser(String name); }
TypeInfoParser { public static TypeInfo getTypeInfoFromTypeString(String name) { return new TypeInfoParser(name).parseTypeInfo(); } TypeInfoParser(String name); static TypeInfo getTypeInfoFromTypeString(String name); }
TypeInfoParser { public static TypeInfo getTypeInfoFromTypeString(String name) { return new TypeInfoParser(name).parseTypeInfo(); } TypeInfoParser(String name); static TypeInfo getTypeInfoFromTypeString(String name);  }