Esempio n. 1
0
        public DefinitionProvider(TypeInfo Type, ToWebStringDelegate ToWebString)
        {
            // http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Document.html

            this.Type = Type;

            // http://robocode.sourceforge.net/docs/robocode/robocode/BattleRules.html

            if (this.Type.FullName.StartsWith("javax.servlet"))
            {
                Source = new Uri("http://java.sun.com/webservices/docs/1.6/api/" + this.Type.FullName.Replace(".", "/") + ".html");
            }
            else if (this.Type.FullName.StartsWith("robocode."))
            {
                Source = new Uri("http://robocode.sourceforge.net/docs/robocode/" + this.Type.FullName.Replace(".", "/") + ".html");
            }
            else if (this.Type.FullName.StartsWith("javax.jdo"))
            {
                Source = new Uri("http://download.oracle.com/docs/cd/E13189_01/kodo/docs341/jdo-javadoc/" + this.Type.FullName.Replace(".", "/") + ".html");
            }
            else
            {
                Source = new Uri("http://java.sun.com/j2se/1.4.2/docs/api/" + this.Type.FullName.Replace(".", "/") + ".html");
            }

            DataString = ToWebString.Invoke(Source);

            var BaseTypesHint1 = "<B>" + Type.Name + "</B>";
            var BaseTypesHint2 = "<DT>";

            {
                var i         = DataString.IndexOf(BaseTypesHint1);
                var j         = DataString.Substring(0, i).LastIndexOf(BaseTypesHint2);
                var Modifiers = DataString.Substring(j + BaseTypesHint2.Length, i - (j + BaseTypesHint2.Length));

                this.Type.IsAbstract  = Modifiers.Contains("abstract");
                this.Type.IsInterface = Modifiers.Contains("interface");
            }

            var BaseTypesHint3 = BaseTypesHint1 + "<DT>extends";
            var BaseTypesHint4 = "</A>";
            var BaseTypesHint5 = "<DT>implements";
            var BaseTypesHint6 = "</DL>";

            {
                var i = DataString.IndexOf(BaseTypesHint3);
                if (i >= 0)
                {
                    i += BaseTypesHint3.Length;

                    var j = DataString.IndexOf(BaseTypesHint4, i);

                    if (j >= 0)
                    {
                        var BaseTypeString = DataString.Substring(i, j + BaseTypesHint4.Length - i);

                        var jj = BaseTypeString.IndexOf(BaseTypesHint5);
                        if (jj > 0)
                        {
                            BaseTypeString = BaseTypeString.Substring(0, jj);
                        }

                        jj = BaseTypeString.IndexOf(BaseTypesHint6);
                        if (jj > 0)
                        {
                            BaseTypeString = BaseTypeString.Substring(0, jj);
                        }
                        var BaseType = new ParameterInfo();

                        ParseParameter(BaseTypeString, BaseType, null, null, null);

                        // dismiss object
                        if (BaseType.Type.FullName == "java.lang.Object")
                        {
                            BaseType.Type = null;
                        }

                        Type.BaseType = BaseType.Type;
                    }
                }
            }

            #region Constructors
            var ConstructorSummaryHint  = "<A NAME=\"constructor_summary\">";
            var ConstructorSummaryStart = "<TABLE";
            var ConstructorSummaryEnd   = "</TABLE>";

            var ConstructorSummary = default(string);

            {
                var ii = DataString.IndexOf(ConstructorSummaryHint);
                if (ii >= 0)
                {
                    // robocode might not show constructors?

                    var i  = DataString.IndexOf(ConstructorSummaryStart, ii);
                    var ic = DataString.IndexOf(ConstructorSummaryEnd, i + ConstructorSummaryStart.Length);

                    ConstructorSummary = DataString.Substring(i, ic - i + ConstructorSummaryEnd.Length);
                    ParseConstructorSummary(Type, ConstructorSummary);
                }
            }

            #endregion

            #region Methods
            var MethodSummaryHint  = "<A NAME=\"method_summary\">";
            var MethodSummaryStart = "<TABLE";
            var MethodSummaryEnd   = "</TABLE>";

            var MethodSummary = default(string);

            {
                var ii = DataString.IndexOf(MethodSummaryHint);
                if (ii >= 0)
                {
                    var i  = DataString.IndexOf(MethodSummaryStart, ii);
                    var ic = DataString.IndexOf(MethodSummaryEnd, i + MethodSummaryStart.Length);

                    MethodSummary = DataString.Substring(i, ic - i + MethodSummaryEnd.Length);
                    ParseMethodSummary(Type, MethodSummary);
                }
            }

            #endregion

            //var x = this.GetString();
        }
        public DefinitionProvider(TypeInfo Type, ToWebStringDelegate ToWebString)
        {
            // http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Document.html

            this.Type = Type;

            // http://robocode.sourceforge.net/docs/robocode/robocode/BattleRules.html

            if (this.Type.FullName.StartsWith("javax.servlet"))
            {
                Source = new Uri("http://java.sun.com/webservices/docs/1.6/api/" + this.Type.FullName.Replace(".", "/") + ".html");
            }
            else if (this.Type.FullName.StartsWith("robocode."))
            {
                Source = new Uri("http://robocode.sourceforge.net/docs/robocode/" + this.Type.FullName.Replace(".", "/") + ".html");
            }
            else if (this.Type.FullName.StartsWith("javax.jdo"))
            {
                Source = new Uri("http://download.oracle.com/docs/cd/E13189_01/kodo/docs341/jdo-javadoc/" + this.Type.FullName.Replace(".", "/") + ".html");
            }
            else
            {
                Source = new Uri("http://java.sun.com/j2se/1.4.2/docs/api/" + this.Type.FullName.Replace(".", "/") + ".html");
            }

            DataString = ToWebString.Invoke(Source);

            var BaseTypesHint1 = "<B>" + Type.Name + "</B>";
            var BaseTypesHint2 = "<DT>";

            {
                var i = DataString.IndexOf(BaseTypesHint1);
                var j = DataString.Substring(0, i).LastIndexOf(BaseTypesHint2);
                var Modifiers = DataString.Substring(j + BaseTypesHint2.Length, i - (j + BaseTypesHint2.Length));

                this.Type.IsAbstract = Modifiers.Contains("abstract");
                this.Type.IsInterface = Modifiers.Contains("interface");
            }

            var BaseTypesHint3 = BaseTypesHint1 + "<DT>extends";
            var BaseTypesHint4 = "</A>";
            var BaseTypesHint5 = "<DT>implements";
            var BaseTypesHint6 = "</DL>";
            {
                var i = DataString.IndexOf(BaseTypesHint3);
                if (i >= 0)
                {
                    i += BaseTypesHint3.Length;

                    var j = DataString.IndexOf(BaseTypesHint4, i);

                    if (j >= 0)
                    {
                        var BaseTypeString = DataString.Substring(i, j + BaseTypesHint4.Length - i);

                        var jj = BaseTypeString.IndexOf(BaseTypesHint5);
                        if (jj > 0)
                        {
                            BaseTypeString = BaseTypeString.Substring(0, jj);
                        }

                        jj = BaseTypeString.IndexOf(BaseTypesHint6);
                        if (jj > 0)
                        {
                            BaseTypeString = BaseTypeString.Substring(0, jj);
                        }
                        var BaseType = new ParameterInfo();

                        ParseParameter(BaseTypeString, BaseType, null, null, null);

                        // dismiss object
                        if (BaseType.Type.FullName == "java.lang.Object")
                            BaseType.Type = null;

                        Type.BaseType = BaseType.Type;

                    }
                }
            }

            #region Constructors
            var ConstructorSummaryHint = "<A NAME=\"constructor_summary\">";
            var ConstructorSummaryStart = "<TABLE";
            var ConstructorSummaryEnd = "</TABLE>";

            var ConstructorSummary = default(string);

            {
                var ii = DataString.IndexOf(ConstructorSummaryHint);
                if (ii >= 0)
                {
                    // robocode might not show constructors?

                    var i = DataString.IndexOf(ConstructorSummaryStart, ii);
                    var ic = DataString.IndexOf(ConstructorSummaryEnd, i + ConstructorSummaryStart.Length);

                    ConstructorSummary = DataString.Substring(i, ic - i + ConstructorSummaryEnd.Length);
                    ParseConstructorSummary(Type, ConstructorSummary);
                }
            }

            #endregion

            #region Methods
            var MethodSummaryHint = "<A NAME=\"method_summary\">";
            var MethodSummaryStart = "<TABLE";
            var MethodSummaryEnd = "</TABLE>";

            var MethodSummary = default(string);

            {
                var ii = DataString.IndexOf(MethodSummaryHint);
                if (ii >= 0)
                {
                    var i = DataString.IndexOf(MethodSummaryStart, ii);
                    var ic = DataString.IndexOf(MethodSummaryEnd, i + MethodSummaryStart.Length);

                    MethodSummary = DataString.Substring(i, ic - i + MethodSummaryEnd.Length);
                    ParseMethodSummary(Type, MethodSummary);
                }
            }

            #endregion

            //var x = this.GetString();
        }