Merge pull request #347 from JamesB7/master
[mono.git] / mcs / class / System / System.Configuration / SettingsProperty.cs
1 //
2 // System.Web.UI.WebControls.SettingsProperty.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 using System;
30
31 namespace System.Configuration
32 {
33         public class SettingsProperty
34         {
35                 public SettingsProperty (SettingsProperty propertyToCopy)
36                         : this (propertyToCopy.Name,
37                                 propertyToCopy.PropertyType,
38                                 propertyToCopy.Provider,
39                                 propertyToCopy.IsReadOnly,
40                                 propertyToCopy.DefaultValue,
41                                 propertyToCopy.SerializeAs,
42                                 new SettingsAttributeDictionary (propertyToCopy.Attributes),
43                                 propertyToCopy.ThrowOnErrorDeserializing,
44                                 propertyToCopy.ThrowOnErrorSerializing)
45                 {
46                 }
47
48                 public SettingsProperty (string name)
49                         : this (name,
50                                 null,
51                                 null,
52                                 false,
53                                 null,
54                                 SettingsSerializeAs.String,
55                                 new SettingsAttributeDictionary(),
56                                 false,
57                                 false)
58                 {
59                 }
60
61                 public SettingsProperty (string name,
62                                          Type propertyType,
63                                          SettingsProvider provider,
64                                          bool isReadOnly,
65                                          object defaultValue,
66                                          SettingsSerializeAs serializeAs,
67                                          SettingsAttributeDictionary attributes,
68                                          bool throwOnErrorDeserializing,
69                                          bool throwOnErrorSerializing)
70                 {
71                         this.name = name;
72                         this.propertyType = propertyType;
73                         this.provider = provider;
74                         this.isReadOnly = isReadOnly;
75                         this.defaultValue = defaultValue;
76                         this.serializeAs = serializeAs;
77                         this.attributes = attributes;
78                         this.throwOnErrorDeserializing = throwOnErrorDeserializing;
79                         this.throwOnErrorSerializing = throwOnErrorSerializing;
80                 }
81
82                 public virtual SettingsAttributeDictionary Attributes {
83                         get {
84                                 return attributes;
85                         }
86                 }
87
88                 public virtual object DefaultValue {
89                         get {
90                                 return defaultValue;
91                         }
92                         set {
93                                 defaultValue = value;
94                         }
95                 }
96
97                 public virtual bool IsReadOnly {
98                         get {
99                                 return isReadOnly;
100                         }
101                         set {
102                                 isReadOnly = value;
103                         }
104                 }
105
106                 public virtual string Name {
107                         get {
108                                 return name;
109                         }
110                         set {
111                                 name = value;
112                         }
113                 }
114
115                 public virtual Type PropertyType {
116                         get {
117                                 return propertyType;
118                         }
119                         set {
120                                 propertyType = value;
121                         }
122                 }
123
124                 public virtual SettingsProvider Provider {
125                         get {
126                                 return provider;
127                         }
128                         set {
129                                 provider = value;
130                         }
131                 }
132
133                 public virtual SettingsSerializeAs SerializeAs {
134                         get {
135                                 return serializeAs;
136                         }
137                         set {
138                                 serializeAs = value;
139                         }
140                 }
141
142                 public bool ThrowOnErrorDeserializing {
143                         get {
144                                 return throwOnErrorDeserializing;
145                         }
146                         set {
147                                 throwOnErrorDeserializing = value;
148                         }
149                 }
150
151                 public bool ThrowOnErrorSerializing {
152                         get {
153                                 return throwOnErrorSerializing;
154                         }
155                         set {
156                                 throwOnErrorSerializing = value;
157                         }
158                 }
159
160                 string name;
161                 Type propertyType;
162                 SettingsProvider provider;
163                 bool isReadOnly;
164                 object defaultValue;
165                 SettingsSerializeAs serializeAs;
166                 SettingsAttributeDictionary attributes;
167                 bool throwOnErrorDeserializing;
168                 bool throwOnErrorSerializing;
169         }
170
171 }
172