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(); }