@Test public void testParseArray() { String array = "array<int>"; TypeInfo typeInfo = TypeInfoParser.getTypeInfoFromTypeString(array); Assert.assertTrue(typeInfo instanceof ArrayTypeInfo); Assert.assertEquals(typeInfo.getTypeName(), array.toUpperCase()); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.ARRAY); Assert.assertEquals(((ArrayTypeInfo) typeInfo).getElementTypeInfo(), TypeInfoFactory.INT); array = "array<BigInt>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(array); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.ARRAY); Assert.assertTrue(typeInfo instanceof ArrayTypeInfo); Assert.assertEquals(typeInfo.getTypeName(), array.toUpperCase()); Assert.assertEquals(((ArrayTypeInfo) typeInfo).getElementTypeInfo(), TypeInfoFactory.BIGINT); array = "ARRAY<map<String,Decimal(10,2)>>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(array); Assert.assertTrue(typeInfo instanceof ArrayTypeInfo); Assert.assertEquals(typeInfo.getTypeName(), array.toUpperCase()); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.ARRAY); Assert.assertEquals(((ArrayTypeInfo) typeInfo).getElementTypeInfo().getTypeName(), "MAP<STRING,DECIMAL(10,2)>"); TypeInfo element = ((ArrayTypeInfo) typeInfo).getElementTypeInfo(); Assert.assertTrue(element instanceof MapTypeInfo); Assert.assertEquals(element.getOdpsType(), OdpsType.MAP); Assert.assertEquals(((MapTypeInfo) element).getKeyTypeInfo(), TypeInfoFactory.STRING); Assert.assertEquals(((MapTypeInfo) element).getValueTypeInfo().getOdpsType(), OdpsType.DECIMAL); Assert.assertEquals(((MapTypeInfo) element).getValueTypeInfo().getTypeName(), "DECIMAL(10,2)"); Assert .assertEquals(((DecimalTypeInfo) ((MapTypeInfo) element).getValueTypeInfo()).getPrecision(), 10); Assert .assertEquals(((DecimalTypeInfo) ((MapTypeInfo) element).getValueTypeInfo()).getScale(), 2); array = "ARRay<VARchar(10)>"; typeInfo = TypeInfoParser.getTypeInfoFromTypeString(array); Assert.assertEquals(typeInfo.getOdpsType(), OdpsType.ARRAY); Assert.assertTrue(typeInfo instanceof ArrayTypeInfo); Assert.assertEquals(typeInfo.getTypeName(), array.toUpperCase()); Assert.assertEquals(((ArrayTypeInfo) typeInfo).getElementTypeInfo().getOdpsType(), OdpsType.VARCHAR); Assert .assertEquals(((ArrayTypeInfo) typeInfo).getElementTypeInfo().getTypeName(), "VARCHAR(10)"); element = ((ArrayTypeInfo) typeInfo).getElementTypeInfo(); Assert.assertEquals(((VarcharTypeInfo) element).getLength(), 10); }
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);  }