[gxml] Fixed SerializableObjectModel.deserialize_property for Node.parent



commit ab8a13ab69ca50dfad8469ce945414e815f29f43
Author: Daniel Espinosa <esodan gmail com>
Date:   Sat Feb 20 11:34:12 2016 -0600

    Fixed SerializableObjectModel.deserialize_property for Node.parent

 gxml/GXmlAttribute.vala           |    6 ++++++
 gxml/SerializableObjectModel.vala |   31 +++++++++++++++++++++++++------
 gxml/TwNode.vala                  |    6 ++++++
 3 files changed, 37 insertions(+), 6 deletions(-)
---
diff --git a/gxml/GXmlAttribute.vala b/gxml/GXmlAttribute.vala
index 65d3ebe..b58474e 100644
--- a/gxml/GXmlAttribute.vala
+++ b/gxml/GXmlAttribute.vala
@@ -82,4 +82,10 @@ public class GXml.GAttribute : GXml.GNode, GXml.Attribute
       return _attr->ns->prefix.dup ();
     }
   }
+  public override GXml.Node parent {
+    owned get {
+      if (_attr == null) return null;
+      return to_gnode (document as GDocument, _node);
+    }
+  }
 }
diff --git a/gxml/SerializableObjectModel.vala b/gxml/SerializableObjectModel.vala
index 18e0e3b..aadf4dd 100644
--- a/gxml/SerializableObjectModel.vala
+++ b/gxml/SerializableObjectModel.vala
@@ -54,13 +54,29 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
   public Gee.Map<string,GXml.Attribute> unknown_serializable_properties
   {
     owned get {
+#if DEBUG
+      GLib.message ("Getting unknown_serializable_nodes");
+      if (_doc != null)
+        if (_doc.root != null)
+          GLib.message ("Doc is not NULL and Root Attributes is NULL:"+(_doc.root.attrs == null).to_string 
());
+        else
+          GLib.message ("Doc is not NULL but Root IS NULL");
+#endif
       if (_doc == null) init_unknown_doc ();
-      return (Gee.Map<string,GXml.Attribute>) _doc.root.attrs;
+      return _doc.root.attrs as Gee.Map<string,GXml.Attribute>;
     }
   }
   public Gee.Collection<GXml.Node> unknown_serializable_nodes
   {
     owned get {
+#if DEBUG
+      GLib.message ("Getting unknown_serializable_nodes");
+      if (_doc != null)
+        if (_doc.root != null)
+          GLib.message ("Doc is not NULL and Root Children is NULL:"+(_doc.root.children == null).to_string 
());
+        else
+          GLib.message ("Doc is not NULL but Root IS NULL");
+#endif
       if (_doc == null) init_unknown_doc ();
       return _doc.root.children;
     }
@@ -319,12 +335,15 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
           if (serialize_use_xml_node_value ()) {
             serialized_xml_node_value = n.value;
 #if DEBUG
-            stdout.printf (@"$(get_type ().name ()): NODE '$(element.name)' CONTENT '$(n.value)'\n");
+            GLib.message (@"$(get_type ().name ()): NODE '$(element.name)' CONTENT '$(n.value)'\n");
 #endif
           } else {
             if (get_enable_unknown_serializable_property ()) {
-              if (n.value._chomp () == n.value && n.value != "")
-                unknown_serializable_nodes.add (n);
+              GLib.message (@"Adding unknown Text node with value: $(n.value)");
+              if (n.value._chomp () == n.value && n.value != "") {
+                var t = _doc.create_text (n.value);
+                _doc.root.children.add (t);
+              }
             }
           }
         }
@@ -358,7 +377,7 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
         if (_doc == null) init_unknown_doc ();
         if (property_node is GXml.Attribute) {
 #if DEBUG
-          GLib.message (@"Adding unknown attribute $(property_node.name) to $(get_type ().name ())\n");
+          GLib.message (@"Adding unknown attribute $(property_node.name) to $(get_type ().name ()) 
Size=$(unknown_serializable_properties.size.to_string ())\n");
 #endif
           ((GXml.Element)_doc.root).set_attr (property_node.name, property_node.value);
         }
@@ -372,7 +391,7 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
         }
       }
 #if DEBUG
-          GLib.message (@"Finishing deserialize unknown node $(property_node.name) to $(get_type ().name 
()): Size=$(unknown_serializable_nodes.size.to_string ())");
+          GLib.message (@"Finishing deserialize unknown node/property $(property_node.name) to $(get_type 
().name ())");
 #endif
       return true;
     }
diff --git a/gxml/TwNode.vala b/gxml/TwNode.vala
index 6bce9a2..cd92dae 100644
--- a/gxml/TwNode.vala
+++ b/gxml/TwNode.vala
@@ -86,7 +86,13 @@ public abstract class GXml.TwNode : Object, GXml.Node
     public inline override Gee.List<GXml.Node>? slice (int start, int stop) { return list.slice (start, 
stop); }
 
     public override bool add (GXml.Node item) {
+#if DEBUG
+      GLib.message ("Setting new parent to TwNode: "+item.name);
+#endif
       (item as GXml.TwNode).set_parent (_parent);
+#if DEBUG
+      GLib.message ("Adding new TwNode: "+item.name);
+#endif
       return list.add (item);
     }
     public inline override void clear () { list.clear (); }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]