private static HollowSchema parseSchema(StreamTokenizer tokenizer) throws IOException { int tok = tokenizer.nextToken(); while(tok != StreamTokenizer.TT_WORD) { if(tok == StreamTokenizer.TT_EOF) return null; tok = tokenizer.nextToken(); } String typeName = tokenizer.sval; tok = tokenizer.nextToken(); if(tok == StreamTokenizer.TT_WORD) { if("List".equals(tokenizer.sval)) { return parseListSchema(typeName, tokenizer); } else if("Set".equals(tokenizer.sval)) { return parseSetSchema(typeName, tokenizer); } else if("Map".equals(tokenizer.sval)) { return parseMapSchema(typeName, tokenizer); } else { throw new IOException("Invalid syntax: expected one of '{', 'List', 'Set', or 'Map' after type declaration for '" + typeName + "'"); } } return parseObjectSchema(typeName, tokenizer); }