TARGET_J2EE/JVM fixes
[mono.git] / mcs / class / System / System.Configuration / NameValueSectionHandler.cs
index f71b1e6193dd1260a7f970f727961961eff80d66..405f8fa9796c318e061a8b3012ba1041c41069cb 100644 (file)
@@ -4,71 +4,77 @@
 // Author:
 //   Christopher Podurgiel (cpodurgiel@msn.com)
 //
-// (C) Ximian, Inc.  http://www.ximian.com
+// (C) Chris Podurgiel
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 using System;
+using System.Collections.Specialized;
+#if (XML_DEP)
+using System.Xml;
+#endif
 
 namespace System.Configuration
 {
        /// <summary>
        /// Summary description for NameValueSectionHandler.
        /// </summary>
-       public class NameValueSectionHandler : IConfigurationSectionHander
+       public class NameValueSectionHandler : IConfigurationSectionHandler
        {
-
-               private static string _stringKey;
-               private static string _stringValue;
-
+#if (XML_DEP)
                /// <summary>
-               ///             NameValueSectionHandler Constructor
+               ///             Creates a new configuration handler and adds the specified configuration object to the collection.
                /// </summary>
-               public NameValueSectionHandler()
-               {
-                       _stringKey = "key";
-                       _stringValue = "value";
-               }
-
-               /// <summary>
-               ///             Creates a new configuration handler and adds the specified 
-configuration object to the collection.
-               /// </summary>
-               /// <param name="parent">Composed from the configuration settings in a 
-corresponding parent configuration section.</param>
-               /// <param name="configContext">Provides access to the virtual path for 
-which the configuration section handler computes configuration values. 
-Normally this parameter is reserved and is null.</param>
-               /// <param name="section">The XML node that contains the configuration 
-information to be handled. section provides direct access to the XML 
-contents of the configuration section.</param>
+               /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>
+               /// <param name="context">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>
+               /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>
                /// <returns></returns>
                public object Create(object parent, object context, XmlNode section)
                {
-                       //FIXME: Add Implemetation code here.
+                       return ConfigHelper.GetNameValueCollection (parent as NameValueCollection, section,
+                                                                   KeyAttributeName, ValueAttributeName);
                }
-
+#endif
                /// <summary>
-               ///             Gets the name of the key in the key-value pair.
+               /// Gets the name of the key attribute tag. This property is overidden by derived classes to change 
+               /// the name of the key attribute tag. The default is "key".
                /// </summary>
                protected virtual string KeyAttributeName
                {
-                       get
-                       {
-                               return _stringKey;
+                       get {
+                               return "key";
                        }
                }
 
                /// <summary>
-               ///             Gets the value for the key in the key-value pair.
+               /// Gets the name of the value tag. This property may be overidden by derived classes to change
+               /// the name of the value tag. The default is "value".
                /// </summary>
-               protected virtual string ValueAttributeName
+               protected virtual string ValueAttributeName 
                {
-                       get
-                       {
-                               return _stringValue;
+                       get {
+                               return "value";
                        }
                }
 
        }
 }
-
-