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);
 }
예제 #2
0
        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();
            }
        }