private Annotation.MemberValue parseArray(Annotation dest, char compTag, TypeDesc compType) { List<Annotation.MemberValue> mvList = new ArrayList<Annotation.MemberValue>(); while (true) { try { if (mStr.charAt(mPos) == ';') { mPos++; break; } } catch (IndexOutOfBoundsException e) { error("Missing terminator"); } mvList.add(parseProperty(dest, compTag, compType)); } Annotation.MemberValue[] mvArray = new Annotation.MemberValue[mvList.size()]; return dest.makeMemberValue(mvList.toArray(mvArray)); }
private void parseAnnotation(Annotation dest, TypeDesc annType) { while (true) { try { if (mStr.charAt(mPos) == ';') { mPos++; break; } } catch (IndexOutOfBoundsException e) { error("Missing terminator"); } if (mPos >= mStr.length()) { break; } String propName = parseName(); char propTag = peekTag(); Annotation.MemberValue mv; if (propTag == TAG_ARRAY) { mPos++; mv = parseArray(dest, peekTag(), parseTypeDesc()); } else { mv = parseProperty(dest, propTag, parseTypeDesc()); } dest.putMemberValue(propName, mv); } }
private Annotation.MemberValue parseArray(Annotation dest, char compTag, TypeDesc compType) { List<Annotation.MemberValue> mvList = new ArrayList<Annotation.MemberValue>(); while (true) { try { if (mStr.charAt(mPos) == ';') { mPos++; break; } } catch (IndexOutOfBoundsException e) { error("Missing terminator"); } mvList.add(parseProperty(dest, compTag, compType)); } Annotation.MemberValue[] mvArray = new Annotation.MemberValue[mvList.size()]; return dest.makeMemberValue(mvList.toArray(mvArray)); }
private void parseAnnotation(Annotation dest, TypeDesc annType) { while (true) { try { if (mStr.charAt(mPos) == ';') { mPos++; break; } } catch (IndexOutOfBoundsException e) { error("Missing terminator"); } if (mPos >= mStr.length()) { break; } String propName = parseName(); char propTag = peekTag(); Annotation.MemberValue mv; if (propTag == TAG_ARRAY) { mPos++; mv = parseArray(dest, peekTag(), parseTypeDesc()); } else { mv = parseProperty(dest, propTag, parseTypeDesc()); } dest.putMemberValue(propName, mv); } }