private static void addGroupType(String t, Tokenizer st, Repetition r, GroupBuilder<?> builder) { GroupBuilder<?> childBuilder = builder.group(r); String name = st.nextToken(); // Read annotation, if any. t = st.nextToken(); OriginalType originalType = null; if (t.equalsIgnoreCase("(")) { originalType = OriginalType.valueOf(st.nextToken()); childBuilder.as(originalType); check(st.nextToken(), ")", "original type ended by )", st); t = st.nextToken(); } if (t.equals("=")) { childBuilder.id(Integer.parseInt(st.nextToken())); t = st.nextToken(); } try { addGroupTypeFields(t, st, childBuilder); } catch (IllegalArgumentException e) { throw new IllegalArgumentException("problem reading type: type = group, name = " + name + ", original type = " + originalType, e); } childBuilder.named(name); }
private static Type readType(String t, Tokenizer st) { Repetition r = asRepetition(t, st); String type = st.nextToken(); String name = st.nextToken(); t = st.nextToken(); OriginalType originalType = null; if (t.equalsIgnoreCase("(")) { originalType = OriginalType.valueOf(st.nextToken()); check(st.nextToken(), ")", "original type ended by )", st); t = st.nextToken(); } try { if (type.equalsIgnoreCase("group")) { Type[] fields = readGroupTypeFields(t, st); return new GroupType(r, name, originalType, fields); } else { PrimitiveTypeName p = asPrimitive(type, st); check(t, ";", "field ended by ';'", st); return new PrimitiveType(r, p, name, originalType); } } catch (IllegalArgumentException e) { throw new IllegalArgumentException("problem reading type: type = " + type + ", name = " + name + ", original type = " + originalType, e); } }
OriginalType originalType = null; if (t.equalsIgnoreCase("(")) { originalType = OriginalType.valueOf(st.nextToken()); childBuilder.as(originalType); if (OriginalType.DECIMAL == originalType) {