Added new files to build script
[mono.git] / mcs / tools / EnumCheck.cs
index 9ebb2352598a7aed34ec054118836217fbdc689a..8c564cc79564e77a17bb36c6a33a3f410aa60d62 100644 (file)
-/**
- * Namespace: System.Web
- * Class:     EnumCheck
- *
- * Author:  Gaurav Vaish
- * Contact: <gvaish@iitk.ac.in>
- * Status:  100%
- *
- * (C) Gaurav Vaish (2002)
- */
-
-using System;
-using System.Reflection;
-
-namespace Mono.Enumerations
-{
-       public class EnumCheck
-       {
-               private string className;
-               private Type   type;
-
-               private static readonly string[] assemblies = {
-                       "mscorlib",
-                       "System",
-                       "System.Drawing",
-                       "System.Web",
-                       "System.Security",
-                       "System.Windows.Forms",
-                       "System.XML",
-                       "System.Data",
-                       "System.Design",
-                       "System.Enterpriseservices",
-                       "System.Management",
-                       "System.Messaging",
-                       "System.Runtime.Remoting",
-                       "System.ServiceProcess",
-                       "System.Web.RegularExpressions",
-                       "System.Web.Services"
-               };
-
-               public EnumCheck(string className)
-               {
-                       this.className = className;
-               }
-
-               public void Display()
-               {
-                       LoadType();
-                       if(type == null || !type.IsEnum)
-                       {
-                               System.Console.Write("-->Failed to load the enumeration: " + className);
-                               return;
-                       }
-                       Array ar = Enum.GetValues(type);
-                       System.Console.WriteLine("-->Enumeration: {0}", type.ToString());
-                       for(int i=0; i < ar.Length; i++)
-                       {
-                               Enum b = (Enum)ar.GetValue(i);
-                               System.Console.Write(" {0}", Enum.Format(type, b, "G"));
-                               System.Console.WriteLine(" ({0}) ", Enum.Format(type, b, "D"));
-                       }
-               }
-
-               private void LoadType()
-               {
-                       type = null;
-                       foreach(string assemblyName in assemblies)
-                       {
-                               try
-                               {
-                                       Assembly assembly = Assembly.Load(assemblyName + ".dll");
-                                       foreach(Type t in assembly.GetTypes())
-                                       {
-                                               if(!t.IsEnum)
-                                                       continue;
-                                               string name = null;
-                                               if(Type.GetType(className + "," + assemblyName) != null)
-                                                       name = Type.GetType(className + "," + assemblyName).ToString();
-                                               if(name == t.ToString())
-                                               {
-                                                       type = t;
-                                                       break;
-                                               }
-                                       }
-                               } catch(BadImageFormatException)
-                               {
-                               } catch(ReflectionTypeLoadException)
-                               {
-                               } catch(ArgumentException)
-                               {
-                               }
-                               if(type != null)
-                                       return;
-                       }
-               }
-
-               public static void PrintUsage()
-               {
-                       System.Console.WriteLine("Usage:");
-                       System.Console.WriteLine("EnumCheck [<enum> [<enum> [... ] ] ]");
-                       System.Console.WriteLine("");
-                       System.Console.WriteLine("enum := <namespace>[.<subnamespace>[...]].enum_name");
-                       System.Console.WriteLine("");
-               }
-
-               public static void Main(string[] args)
-               {
-                       if(args.Length > 0 && (args[0] == "--help" || args[0] == "-h"))
-                       {
-                               PrintUsage();
-                               return;
-                       }
-                       EnumCheck check = null;
-                       if(args.Length != 0)
-                       {
-                               foreach(string clName in args)
-                               {
-                                       check = new EnumCheck(clName);
-                                       check.Display();
-                                       System.Console.WriteLine("\n");
-                               }
-                       }
-                       while(true)
-                       {
-                               System.Console.Write("Enter the name of the Enumeration (end to stop): ");
-                               string clName = System.Console.ReadLine();
-                               if(clName == "stop" || clName.Length == 0)
-                                       break;
-                               check = new EnumCheck(clName);
-                               check.Display();
-                               System.Console.WriteLine("\n");
-                       }
-               }
-       }
-}
+/**\r
+ * Namespace: System.Web\r
+ * Class:     EnumCheck\r
+ *\r
+ * Author:  Gaurav Vaish\r
+ * Contact: <gvaish@iitk.ac.in>\r
+ * Status:  100%\r
+ *\r
+ * (C) Gaurav Vaish (2002)\r
+ */\r
+\r
+using System;\r
+using System.Xml;\r
+using System.Collections;\r
+using System.Reflection;\r
+\r
+namespace Mono.Enumerations\r
+{\r
+       public class EnumCheck\r
+       {\r
+               private string className;\r
+               private Type   type;\r
+               private EnumCheckAssemblyCollection ecac = new EnumCheckAssemblyCollection();\r
+               \r
+               public static string confFile = "assemblies.xml";\r
+\r
+               public EnumCheck(string className)\r
+               {\r
+                       this.className = className;\r
+                       ecac.Parse();\r
+               }\r
+\r
+               public void Display()\r
+               {\r
+                       ecac.ConfigFile = confFile;\r
+                       LoadType();\r
+                       if(type == null || !type.IsEnum)\r
+                       {\r
+                               System.Console.Write("-->Failed to load the enumeration: " + className);\r
+                               return;\r
+                       }\r
+                       Array ar = Enum.GetValues(type);\r
+                       System.Console.WriteLine("-->Enumeration: {0}", type.ToString());\r
+                       for(int i=0; i < ar.Length; i++)\r
+                       {\r
+                               Enum b = (Enum)ar.GetValue(i);\r
+                               System.Console.Write(" {0}", Enum.Format(type, b, "G"));\r
+                               System.Console.WriteLine(" ({0}) ", Enum.Format(type, b, "D"));\r
+                       }\r
+               }\r
+\r
+               private void LoadType()\r
+               {\r
+                       type = null;\r
+                       foreach(string url in ecac)\r
+                       {\r
+                               try\r
+                               {\r
+                                       Assembly assembly = Assembly.LoadFrom(url);\r
+                                       foreach(Type t in assembly.GetTypes())\r
+                                       {\r
+                                               if(!t.IsEnum)\r
+                                                       continue;\r
+                                               if(className == t.ToString())\r
+                                               {\r
+                                                       type = t;\r
+                                                       break;\r
+                                               }\r
+                                       }\r
+                               } catch(BadImageFormatException)\r
+                               {\r
+                               } catch(ReflectionTypeLoadException)\r
+                               {\r
+                               } catch(ArgumentException)\r
+                               {\r
+                               }\r
+                               if(type != null)\r
+                                       return;\r
+                       }\r
+               }\r
+\r
+               public static void PrintUsage()\r
+               {\r
+                       System.Console.WriteLine("Usage:");\r
+                       System.Console.WriteLine("EnumCheck [<enum> [<enum> [... ] ] ]");\r
+                       System.Console.WriteLine("");\r
+                       System.Console.WriteLine("enum := <namespace>[.<subnamespace>[...]].enum_name");\r
+                       System.Console.WriteLine("");\r
+               }\r
+\r
+               public static void Main(string[] args)\r
+               {\r
+                       if(args.Length > 0 && (args[0] == "--help" || args[0] == "-h"))\r
+                       {\r
+                               PrintUsage();\r
+                               return;\r
+                       }\r
+                       EnumCheck check = null;\r
+                       string bdir;\r
+                       System.Console.Write("Enter assembly configuration file [{0}]:", confFile);\r
+                       //System.Console.Write("[{0}]: ", confFile);\r
+                       bdir = System.Console.ReadLine();\r
+                       while(bdir.EndsWith("/") || bdir.EndsWith("\\"))\r
+                       {\r
+                               bdir = bdir.Substring(0, bdir.Length - 1);\r
+                       }\r
+                       if(bdir != "")\r
+                       {\r
+                               confFile = bdir;\r
+                       }\r
+                       if(args.Length != 0)\r
+                       {\r
+                               foreach(string clName in args)\r
+                               {\r
+                                       check = new EnumCheck(clName);\r
+                                       check.Display();\r
+                                       System.Console.WriteLine("\n");\r
+                               }\r
+                       }\r
+                       while(true)\r
+                       {\r
+                               System.Console.Write("Enter the name of the Enumeration (end to stop): ");\r
+                               string clName = System.Console.ReadLine();\r
+                               if(clName == "stop" || clName == "end" || clName.Length == 0)\r
+                                       break;\r
+                               check = new EnumCheck(clName);\r
+                               check.Display();\r
+                               System.Console.WriteLine("\n");\r
+                       }\r
+               }\r
+       }\r
+}\r