You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ym...@apache.org on 2002/11/19 12:31:04 UTC

cvs commit: jakarta-avalon-excalibur/csframework/src/cs/Configuration DefaultConfigurationSerializer.cs

ymikulski    2002/11/19 03:31:03

  Modified:    csframework/src/cs/Configuration
                        DefaultConfigurationSerializer.cs
  Log:
  no message
  
  Revision  Changes    Path
  1.6       +51 -20    jakarta-avalon-excalibur/csframework/src/cs/Configuration/DefaultConfigurationSerializer.cs
  
  Index: DefaultConfigurationSerializer.cs
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/csframework/src/cs/Configuration/DefaultConfigurationSerializer.cs,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DefaultConfigurationSerializer.cs	27 Oct 2002 15:54:35 -0000	1.5
  +++ DefaultConfigurationSerializer.cs	19 Nov 2002 11:31:02 -0000	1.6
  @@ -9,11 +9,12 @@
   using System.Collections;
   using System.IO;
   using System.Xml;
  +using System.Text;
   
   namespace Apache.Avalon.Configuration
   {
   	/// <summary>
  -	/// A Serializer of <see cref="DefaultConfiguration"/>.
  +	/// A Serializer/Deserializer of a <see cref="DefaultConfiguration"/>.
   	/// </summary>
   	public class DefaultConfigurationSerializer
   	{
  @@ -42,6 +43,11 @@
   			writer.Close(); 
   		}
   
  +		/// <summary>
  +		/// Makes a serialization of a <see cref="DefaultConfiguration"/> instance.
  +		/// </summary>
  +		/// <param name="writer"></param>
  +		/// <param name="configuration">A <see cref="DefaultConfiguration"/> instance to serialize.</param>
   		public static void Serialize(XmlWriter writer, DefaultConfiguration configuration)
   		{
   			// serialize the configuration
  @@ -71,7 +77,7 @@
   		/// Makes a deserialization of a <see cref="DefaultConfiguration"/> instance.
   		/// </summary>
   		/// <param name="fileName">The name of the file, containing the XML document to deserialize.</param>
  -		/// <returns>A deserialized <see cref="DefaultConfiguration"/>  instance.</returns>
  +		/// <returns>A deserialized <see cref="DefaultConfiguration"/> instance.</returns>
   		public static DefaultConfiguration Deserialize(string fileName)
   		{
   			DefaultConfiguration configuration = null;
  @@ -83,7 +89,7 @@
   
   			if (root != null)
   			{
  -				configuration = Deserialize(root);
  +				configuration = Deserialize(root, null);
   			}
   
   			return configuration;
  @@ -93,35 +99,60 @@
   		/// Makes a deserialization of <see cref="System.Xml.XmlNode"/> instance.
   		/// </summary>
   		/// <param name="node">The node to deserialize.</param>
  -		/// <returns>A deserialized <see cref="DefaultConfiguration"/>  instance.</returns>
  -		public static DefaultConfiguration Deserialize(XmlNode node)
  +		/// <param name="parent">A deserialized <see cref="DefaultConfiguration"/> parent instance.</param>
  +		/// <returns>A deserialized <see cref="DefaultConfiguration"/> instance.</returns>
  +		public static DefaultConfiguration Deserialize(XmlNode node, DefaultConfiguration parent)
   		{
   			// node deserialization
  -			DefaultConfiguration configuration =
  -				new DefaultConfiguration(node.LocalName, "-", node.NamespaceURI, node.Prefix);
  -			
  -			configuration.Value = node.InnerText;
  +			DefaultConfiguration configuration = null;
   
  -			// attribute deserialization
  -			if (node.Attributes != null)
  +			if ((node.NodeType  == XmlNodeType.CDATA) || (node.NodeType == XmlNodeType.Text))
   			{
  -				foreach (XmlAttribute attr in node.Attributes)
  +				if (parent != null)
   				{
  -					if (string.Compare(attr.Prefix, string.Empty) == 0)
  -					{
  -						configuration.Attributes[attr.Name] = attr.Value;  
  -					}
  +					parent.Value = string.Concat(parent.Value, node.Value);
   				}
   			}
   
  -			// child deserialization
  -			foreach (XmlNode child in node.ChildNodes)
  +			if ((node.NodeType  == XmlNodeType.Document) || (node.NodeType == XmlNodeType.Element))
   			{
  -				DefaultConfiguration childConfiguration = Deserialize(child);
  -				configuration.Children.Add(childConfiguration); 
  +				configuration = new DefaultConfiguration(node.LocalName, "-", node.NamespaceURI, node.Prefix);
  +	
  +				// attribute deserialization
  +				if (node.Attributes != null)
  +				{
  +					foreach (XmlAttribute attr in node.Attributes)
  +					{
  +						if (string.Compare(attr.Prefix, string.Empty) == 0)
  +						{
  +							configuration.Attributes[attr.Name] = attr.Value;  
  +						}
  +					}
  +				}
  +
  +				// child deserialization
  +				foreach (XmlNode child in node.ChildNodes)
  +				{
  +					DefaultConfiguration childConfiguration = Deserialize(child, configuration);
  +					
  +					if (childConfiguration != null)
  +					{
  +						configuration.Children.Add(childConfiguration); 
  +					}
  +				}
   			}
   
   			return configuration;
  +		}
  +
  +		/// <summary>
  +		/// Makes a deserialization of <see cref="System.Xml.XmlNode"/> instance.
  +		/// </summary>
  +		/// <param name="node">The node to deserialize.</param>
  +		/// <returns>A deserialized <see cref="DefaultConfiguration"/> instance.</returns>
  +		public static DefaultConfiguration Deserialize(XmlNode node)
  +		{
  +			return Deserialize(node, null);
   		}
   	}
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>