move the WriteClientScriptIncludes to the top of the form, according to the MSDN
[mono.git] / mcs / class / System.Web / System.Web.Configuration / CompilerCollection.cs
1 //
2 // System.Web.Configuration.CompilerCollection
3 //
4 // Authors:
5 //      Gonzalo Paniagua Javier (gonzalo@ximian.com)
6 //
7 // (C) 2003,2005 Novell, Inc (http://www.novell.com)
8 //
9
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 // 
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 // 
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30
31 #if !NET_2_0
32 /* when NET_2_0 is defined, this class is found in System.Web.Configuration_2.0/ */
33
34 using System;
35 using System.Collections;
36 using System.Configuration;
37
38 namespace System.Web.Configuration
39 {
40         sealed class CompilerCollection
41         {
42                 Hashtable compilers;
43
44                 public CompilerCollection () : this (null) {}
45
46                 public CompilerCollection (CompilerCollection parent)
47                 {
48                         compilers = new Hashtable (CaseInsensitiveHashCodeProvider.DefaultInvariant,
49                                                    CaseInsensitiveComparer.DefaultInvariant);
50
51                         if (parent != null && parent.compilers != null) {
52                                 foreach (DictionaryEntry entry in parent.compilers)
53                                         compilers [entry.Key] = entry.Value;
54                         }
55                 }
56
57                 public Compiler this [string language] {
58                         get { return compilers [language] as Compiler; }
59                         set {
60                                 compilers [language] = value;
61                                 string [] langs = language.Split (';');
62                                 foreach (string s in langs) {
63                                         string x = s.Trim ();
64                                         if (x != "")
65                                                 compilers [x] = value;
66                                 }
67                         }
68                 }
69
70                 public bool CompareLanguages (string lang1, string lang2)
71                 {
72                         return (this [lang1] == this [lang2]);
73                 }
74         }
75 }
76
77 #endif