* LocalFileSettingsProvider.cs (IsUserSetting): more
[mono.git] / mcs / class / System / System.Configuration / LocalFileSettingsProvider.cs
1 //
2 // System.Configuration.LocalFileSettingsProvider.cs
3 //
4 // Authors:
5 //      Chris Toshok (toshok@ximian.com)
6 //
7 // (C) 2005 Novell, Inc (http://www.novell.com)
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28
29 #if NET_2_0
30 #if CONFIGURATION_DEP
31 extern alias PrebuiltSystem;
32 using NameValueCollection = PrebuiltSystem.System.Collections.Specialized.NameValueCollection;
33 #endif
34
35 using System;
36 using System.Collections.Specialized;
37
38 namespace System.Configuration
39 {
40         public class LocalFileSettingsProvider : SettingsProvider, IApplicationSettingsProvider
41         {
42                 public LocalFileSettingsProvider ()
43                 {
44                 }
45
46                 [MonoTODO]
47                 public SettingsPropertyValue GetPreviousVersion (SettingsContext context,
48                                                                  SettingsProperty property)
49                 {
50                         throw new NotImplementedException ();
51                 }
52
53
54                 [MonoTODO]
55                 public override SettingsPropertyValueCollection GetPropertyValues (SettingsContext context,
56                                                                                    SettingsPropertyCollection properties)
57                 {
58                         SettingsPropertyValueCollection pv = new SettingsPropertyValueCollection ();
59                         foreach (SettingsProperty prop in properties)
60                                 pv.Add (new SettingsPropertyValue (prop));
61
62                         return pv;
63                 }
64
65 #if CONFIGURATION_DEP
66                 public override void Initialize (string name,
67                                                  NameValueCollection values)
68                 {
69                         if (name == null)
70                                 name = "LocalFileSettingsProvider";
71                         if (values != null)
72                                 applicationName = values["applicationName"];
73
74                         base.Initialize (name, values);
75                 }
76 #endif
77
78                 [MonoTODO]
79                 public void Reset (SettingsContext context)
80                 {
81                         throw new NotImplementedException ();
82                 }
83
84                 [MonoTODO]
85                 public override void SetPropertyValues (SettingsContext context,
86                                                         SettingsPropertyValueCollection values)
87                 {
88                         throw new NotImplementedException ();
89                 }
90
91                 [MonoTODO]
92                 public void Upgrade (SettingsContext context,
93                                      SettingsPropertyCollection properties)
94                 {
95                         throw new NotImplementedException ();
96                 }
97
98                 string applicationName = "";
99                 public override string ApplicationName {
100                         get { return applicationName; }
101                         set { applicationName = value; }
102                 }
103
104                 bool IsUserSetting (SettingsProperty prop)
105                 {
106 #if CONFIGURATION_DEP
107                         if (prop.Attributes.ContainsKey (typeof (UserScopedSettingAttribute)))
108                                 return true;
109                         else if (prop.Attributes.ContainsKey (typeof (ApplicationScopedSettingAttribute)))
110                                 return false;
111                         else
112                                 throw new ConfigurationErrorsException (
113                                                         String.Format ("The setting '{0}' does not have either an ApplicationScopedSettingAttribute or UserScopedSettingAttribute.",
114                                                                        prop.Name));
115 #else
116                         return false;
117 #endif
118                 }
119         }
120
121 }
122
123 #endif