2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / tools / misc / EnumCheckAssemblyCollection.cs
1 /**\r
2  * Namespace: System.Web\r
3  * Class:     EnumCheckAssembly\r
4  *\r
5  * Author:  Gaurav Vaish\r
6  * Contact: <gvaish@iitk.ac.in>\r
7  * Status:  100%\r
8  *\r
9  * (C) Gaurav Vaish (2002)\r
10  */\r
11 \r
12 using System;\r
13 using System.IO;\r
14 using System.Xml;\r
15 using System.Collections;\r
16 using System.Reflection;\r
17 \r
18 namespace Mono.Enumerations\r
19 {\r
20         public class EnumCheckAssemblyCollection: IEnumerable\r
21         {\r
22                 public string ConfigFile = "assemblies.xml";\r
23                 \r
24                 private ArrayList assemblyList = new ArrayList();\r
25 \r
26                 public EnumCheckAssemblyCollection()\r
27                 {\r
28                 }\r
29 \r
30                 public void Parse()\r
31                 {\r
32                         Stream      fStream;\r
33                         XmlReader   reader;\r
34                         XmlDocument document;\r
35                         string      url;\r
36 \r
37                         fStream = new FileStream(ConfigFile, FileMode.Open, FileAccess.Read, FileShare.Read);\r
38                         reader = new XmlTextReader(fStream);\r
39                         document = new XmlDocument();\r
40                         document.Load(reader);\r
41                         if(document.DocumentElement != null)\r
42                         {\r
43                                 if(document.DocumentElement.LocalName == "assemblies")\r
44                                 {\r
45                                         foreach(XmlNode pathNode in document.DocumentElement)\r
46                                         {\r
47                                                 if(pathNode.NodeType == XmlNodeType.Element && pathNode.LocalName=="path")\r
48                                                 {\r
49                                                         url = pathNode.Attributes["url"].Value;\r
50                                                         while(url.EndsWith("\\") || url.EndsWith("/"))\r
51                                                         {\r
52                                                                 url = url.Substring(0, url.Length - 1);\r
53                                                         }\r
54                                                         if(url == null || url.Length == 0)\r
55                                                         {\r
56                                                                 continue;\r
57                                                         }\r
58                                                         foreach(XmlNode assemblyNode in pathNode.ChildNodes)\r
59                                                         {\r
60                                                                 if(assemblyNode.LocalName == "assembly")\r
61                                                                 {\r
62                                                                         assemblyList.Add(url + "\\" + assemblyNode.Attributes["file"].Value);\r
63                                                                 }\r
64                                                         }\r
65                                                 }\r
66                                         }\r
67                                 }\r
68                         }\r
69                         fStream.Close();\r
70                 }\r
71 \r
72                 public IEnumerator GetEnumerator()\r
73                 {\r
74                         return assemblyList.GetEnumerator();\r
75                 }\r
76         }\r
77 }\r