internal static bool TryLoadCommonElement(this JavaType type, XmlReader reader) { if (reader.LocalName == "implements") { var implements = new JavaImplements(); implements.Load(reader); type.Implements.Add(implements); } else if (reader.LocalName == "typeParameters") { var tp = new JavaTypeParameters(type); tp.Load(reader); type.TypeParameters = tp; } else if (reader.LocalName == "field") { var field = new JavaField(type); field.Load(reader); type.Members.Add(field); } else if (reader.LocalName == "method") { var method = new JavaMethod(type); method.Load(reader); type.Members.Add(method); } else { return(false); } return(true); }
static void LoadMethodBase(this JavaMethodBase methodBase, string elementName, XmlReader reader) { var method = methodBase as JavaMethod; // kind of ugly hack yeah... methodBase.LoadMemberAttributes(reader); //methodBase.ExtendedJniSignature = reader.GetAttribute ("jni-signature"); methodBase.ExtendedJniReturn = reader.GetAttribute("jni-return"); methodBase.ExtendedSynthetic = XmlConvert.ToBoolean(reader.GetAttribute("synthetic") ?? "false"); methodBase.ExtendedBridge = XmlConvert.ToBoolean(reader.GetAttribute("bridge") ?? "false"); reader.MoveToElement(); if (reader.IsEmptyElement) { reader.Read(); } else { reader.Read(); do { reader.MoveToContent(); if (reader.NodeType == XmlNodeType.EndElement) { break; } if (reader.NodeType != XmlNodeType.Element) { throw XmlUtil.UnexpectedElementOrContent(elementName, reader, "parameter"); } if (reader.LocalName == "typeParameters") { var tp = new JavaTypeParameters(methodBase); tp.Load(reader); methodBase.TypeParameters = tp; } else if (reader.LocalName == "parameter") { var p = new JavaParameter(methodBase); p.Load(reader); methodBase.Parameters.Add(p); } else if (reader.LocalName == "exception") { var p = new JavaException(); p.Load(reader); methodBase.Exceptions.Add(p); } else { throw XmlUtil.UnexpectedElementOrContent(elementName, reader, "parameter"); } } while (true); XmlUtil.VerifyEndElement(reader, elementName); reader.Read(); } }