예제 #1
0
        JavaDocDocumentElement GetJavaDocDocumentElement(JavaDocKind kind, XElement jd)
        {
            if (jd == null)
            {
                return(null);
            }
            switch (kind)
            {
            case JavaDocKind.DroidDoc:
                return(new DroidDocDocumentElement(new DroidDocMdocHelper(), jd));

            case JavaDocKind.DroidDoc2:
                return(new DroidDoc2DocumentElement(new DroidDocMdocHelper(), jd));

            case JavaDocKind.Java6:
                return(new JavaDoc6DocumentElement(new JavaDocMdocHelper(), jd));

            case JavaDocKind.Java7:
                return(new JavaDoc7DocumentElement(new JavaDocMdocHelper(), jd));

            case JavaDocKind.Java8:
                return(new JavaDoc8DocumentElement(new JavaDocMdocHelper(), jd));
            }
            throw new InvalidOperationException();
        }
예제 #2
0
        XElement GetJavaDocFile(string path, out JavaDocKind kind)
        {
            kind = JavaDocKind.DroidDoc;
            string rawHTML = ReadAndSanitizeHtmlFile(path);

            if (rawHTML.Substring(0, 500).IndexOf("Generated by javadoc (build 1.6", StringComparison.Ordinal) > 0)
            {
                kind = JavaDocKind.Java6;
            }
            if (rawHTML.Substring(0, 500).IndexOf("Generated by javadoc (version 1.7", StringComparison.Ordinal) > 0)
            {
                kind = JavaDocKind.Java7;
            }
            if (rawHTML.Substring(0, 500).IndexOf("Generated by javadoc (1.8", StringComparison.Ordinal) > 0)
            {
                kind = JavaDocKind.Java8;
            }
            var html = new Sgml.SgmlReader()
            {
                InputStream = new StringReader(rawHTML),
                CaseFolding = Sgml.CaseFolding.ToLower,
                Dtd         = HtmlDtd
            };
            var doc = XDocument.Load(html, LoadOptions.SetLineInfo | LoadOptions.SetBaseUri);

            return(doc.Root);
        }
예제 #3
0
        XElement GetJavaDocFile(string path, out JavaDocKind kind)
        {
            kind = JavaDocKind.DroidDoc;
            string rawHTML = ReadHtmlFile(path);

            if (rawHTML.Substring(0, Math.Min(rawHTML.Length, 5000)).IndexOf("<body class=\"gc-documentation develop reference api ", StringComparison.Ordinal) > 0)
            {
                kind = JavaDocKind.DroidDoc2;
            }
            if (rawHTML.Substring(0, Math.Min(rawHTML.Length, 500)).IndexOf("Generated by javadoc (build 1.6", StringComparison.Ordinal) > 0)
            {
                kind = JavaDocKind.Java6;
            }
            if (rawHTML.Substring(0, Math.Min(rawHTML.Length, 500)).IndexOf("Generated by javadoc (version 1.7", StringComparison.Ordinal) > 0)
            {
                kind = JavaDocKind.Java7;
            }
            if (rawHTML.Substring(0, Math.Min(rawHTML.Length, 500)).IndexOf("Generated by javadoc (1.8", StringComparison.Ordinal) > 0)
            {
                kind = JavaDocKind.Java8;
            }
            if (kind == JavaDocKind.DroidDoc)
            {
                throw new NotSupportedException("Old DroidDoc is not supported anymore.");
            }
            else
            {
                var html = new Sgml.SgmlReader()
                {
                    InputStream = new StringReader(rawHTML),
                    CaseFolding = Sgml.CaseFolding.ToLower,
                    Dtd         = HtmlDtd
                };
                var doc = XDocument.Load(html);

                return(doc.Root);
            }
        }