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: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>