[gxml] Removed SerializableCollection.is_prepared()



commit 3369748f4e851651acb578be68abf07458b2c2d3
Author: Daniel Espinosa <esodan gmail com>
Date:   Wed Feb 24 14:38:44 2016 -0600

    Removed SerializableCollection.is_prepared()

 NEWS                                    |   10 ++--
 gxml/SerializableContainer.vala         |    4 -
 gxml/SerializableGeeArrayList.vala      |    1 -
 gxml/SerializableGeeDualKeyMap.vala     |    1 -
 gxml/SerializableGeeHashMap.vala        |    5 +-
 gxml/SerializableGeeTreeMap.vala        |    1 -
 test/SerializableGeeDualKeyMapTest.vala |  104 -------------------------------
 test/gxml-performance.vala              |  104 +++++++++++++++++++++++++++++++
 8 files changed, 110 insertions(+), 120 deletions(-)
---
diff --git a/NEWS b/NEWS
index d7771c7..8daac3a 100644
--- a/NEWS
+++ b/NEWS
@@ -4,14 +4,14 @@ Version 0.9.2
 
 * API change Serializable.deserialize now return a boolean
 
-* API change SerializableCollection: added new abstract methods
+* API change SerializableCollection: added new abstract methods for post-deserialization
 
-* SerializableCollection: SerializableArrayList now support enable/disable deserialization
-  for post operation using SerializableCollection.deserialize_children() initial document
-  load time optimization
+* SerializableCollection: Implementations now support enable/disable deserialization
+  for post operation using SerializableCollection.deserialize_children() for initial
+  document load time optimization
 
 * More memory optimizations: SerializableCollection implementations don't hold
-  objects for unknown properties and nodes
+  objects for unknown properties/nodes
 
 
 
diff --git a/gxml/SerializableContainer.vala b/gxml/SerializableContainer.vala
index b177eb1..301a0ea 100644
--- a/gxml/SerializableContainer.vala
+++ b/gxml/SerializableContainer.vala
@@ -57,10 +57,6 @@ public interface GXml.SerializableCollection : Object, Gee.Traversable<Serializa
    */
   public abstract bool deserialized ();
   /**
-   * Returns true if the collection is able to deserialize from a { link GXml.Node}'s children.
-   */
-  public abstract bool is_prepared ();
-  /**
    * Executes a deserialization from a { link GXml.Node}. After this operation
    * { link GXml.SerializableCollection.deserialized} should return true. This
    * operation should not be executed if { link GXml.SerializableCollection.is_prepared}
diff --git a/gxml/SerializableGeeArrayList.vala b/gxml/SerializableGeeArrayList.vala
index 7d1e4b1..dfb1389 100644
--- a/gxml/SerializableGeeArrayList.vala
+++ b/gxml/SerializableGeeArrayList.vala
@@ -36,7 +36,6 @@ public class GXml.SerializableArrayList<G> : Gee.ArrayList<G>, Serializable, Ser
   // SerializableCollection interface
   public virtual bool deserialize_proceed () { return true; }
   public virtual bool deserialized () { return _deserialized; }
-  public virtual bool is_prepared () { return (_node is GXml.Node); }
   public virtual bool deserialize_node (GXml.Node node)  throws GLib.Error {
     if (!element_type.is_a (typeof (GXml.Serializable))) {
       throw new SerializableError.UNSUPPORTED_TYPE_ERROR (_("%s: Value type '%s' is unsupported"), 
diff --git a/gxml/SerializableGeeDualKeyMap.vala b/gxml/SerializableGeeDualKeyMap.vala
index 6e8b2fd..23b545a 100644
--- a/gxml/SerializableGeeDualKeyMap.vala
+++ b/gxml/SerializableGeeDualKeyMap.vala
@@ -37,7 +37,6 @@ public class GXml.SerializableDualKeyMap<P,S,V> : Object, Gee.Traversable <V>, S
   // SerializableCollection interface
   public virtual bool deserialize_proceed () { return true; }
   public virtual bool deserialized () { return true; }
-  public virtual bool is_prepared () { return (_node is GXml.Node); }
   public virtual bool deserialize_node (GXml.Node node) throws GLib.Error {
     if (!(value_type.is_a (typeof (GXml.Serializable)) &&
         value_type.is_a (typeof (SerializableMapDualKey)))) {
diff --git a/gxml/SerializableGeeHashMap.vala b/gxml/SerializableGeeHashMap.vala
index 26750b2..5957d11 100644
--- a/gxml/SerializableGeeHashMap.vala
+++ b/gxml/SerializableGeeHashMap.vala
@@ -34,7 +34,6 @@ public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, Ser
   // SerializableCollection interface
   public virtual bool deserialize_proceed () { return true; }
   public virtual bool deserialized () { return _deserialized; }
-  public virtual bool is_prepared () { return (_node is GXml.Node); }
   public virtual bool deserialize_node (GXml.Node node) throws GLib.Error {
     if (!(value_type.is_a (typeof (GXml.Serializable)) &&
         value_type.is_a (typeof (SerializableMapKey)))) {
@@ -159,8 +158,6 @@ public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, Ser
   public bool default_deserialize_property (GXml.Node property_node)
                                             throws GLib.Error
   {
-    if (is_prepared ())
-      return deserialize_node (property_node);
-    return false;
+    return deserialize_node (property_node);
   }
 }
diff --git a/gxml/SerializableGeeTreeMap.vala b/gxml/SerializableGeeTreeMap.vala
index 3a88f4a..375f9c0 100644
--- a/gxml/SerializableGeeTreeMap.vala
+++ b/gxml/SerializableGeeTreeMap.vala
@@ -34,7 +34,6 @@ public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable, Ser
   // SerializableCollection interface
   public virtual bool deserialize_proceed () { return true; }
   public virtual bool deserialized () { return true; }
-  public virtual bool is_prepared () { return (_node is GXml.Node); }
   public virtual bool deserialize_node (GXml.Node node) throws GLib.Error {
     if (!(value_type.is_a (typeof (GXml.Serializable)) &&
         value_type.is_a (typeof (SerializableMapKey)))) {
diff --git a/test/SerializableGeeDualKeyMapTest.vala b/test/SerializableGeeDualKeyMapTest.vala
index 35fe163..0d71b97 100644
--- a/test/SerializableGeeDualKeyMapTest.vala
+++ b/test/SerializableGeeDualKeyMapTest.vala
@@ -42,26 +42,6 @@ class Spaces : SerializableObjectModel, SerializableMapDualKey<string,string>
 
 class SerializableGeeDualKeyMapTest : GXmlTest
 {
-
-  class DHElement : SerializableObjectModel, SerializableMapDualKey<string,string>
-  {
-    public string name { get; set; }
-    public string key { get; set; }
-    public string get_map_primary_key  () { return key; }
-    public string get_map_secondary_key () { return name; }
-    public override string node_name () { return "DHElement"; }
-    public override string to_string () { return "DHElement"; }
-    public class DualKeyMap : SerializableDualKeyMap<string,string,DHElement> {
-      public bool enable_deserialize { get; set; default = false; }
-      public override bool deserialize_proceed () { return enable_deserialize; }
-    }
-  }
-  class DHCElement : SerializableObjectModel {
-    public DHElement.DualKeyMap elements1 { get; set; default = new DHElement.DualKeyMap (); }
-    public DHElement.DualKeyMap elements2 { get; set; default = new DHElement.DualKeyMap (); }
-    public override string node_name () { return "DHCElement"; }
-    public override string to_string () { return "DHCElement"; }
-  }
   public static void add_tests ()
   {
     Test.add_func ("/gxml/serializable/serializable_dual_key_map/api",
@@ -308,89 +288,5 @@ class SerializableGeeDualKeyMapTest : GXmlTest
         assert_not_reached ();
       }
     });
-    Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/disable",
-    () => {
-      try {
-        double time;
-        Test.message ("Starting generating document...");
-        Test.timer_start ();
-        var d = new TwDocument ();
-        var ce = new DHCElement ();
-        for (int i = 0; i < 125000; i++) {
-          var e1 = new DHElement ();
-          e1.key = "E1";
-          e1.name = "1E"+i.to_string ();
-          ce.elements1.set (e1.key, e1.name, e1);
-          var e2 = new DHElement ();
-          e2.key = "E2";
-          e2.name = "2E"+i.to_string ();
-          ce.elements2.set (e2.key, e2.name, e2);
-        }
-        ce.serialize (d);
-        time = Test.timer_elapsed ();
-        Test.minimized_result (time, "Created document: %g seconds", time);
-        Test.message ("Starting deserializing document: Disable collection deserialization...");
-        Test.timer_start ();
-        var cep = new DHCElement ();
-        cep.elements1.enable_deserialize = false;
-        cep.elements2.enable_deserialize = false;
-        cep.deserialize (d);
-        time = Test.timer_elapsed ();
-        Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds", 
time);
-        assert (cep.elements1.is_prepared ());
-        assert (cep.elements2.is_prepared ());
-        Test.message ("Calling C1 deserialize_children()...");
-        Test.timer_start ();
-        cep.elements1.deserialize_children ();
-        assert (!cep.elements1.deserialize_children ());
-        time = Test.timer_elapsed ();
-        Test.minimized_result (time, "C1: Disable Deserialize Collection. Deserialized from NODE: %g 
seconds", time);
-        Test.message ("Calling C2 deserialize_children()...");
-        Test.timer_start ();
-        cep.elements2.deserialize_children ();
-        assert (!cep.elements2.deserialize_children ());
-        time = Test.timer_elapsed ();
-        Test.minimized_result (time, "C2: Disable Deserialize Collection. Deserialized from NODE: %g 
seconds", time);
-      } catch (GLib.Error e) {
-        GLib.message ("ERROR: "+e.message);
-        assert_not_reached ();
-      }
-    });
-    Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/enable",
-    () => {
-      try {
-        double time;
-        Test.message ("Starting generating document...");
-        Test.timer_start ();
-        var d = new TwDocument ();
-        var ce = new DHCElement ();
-        for (int i = 0; i < 125000; i++) {
-          var e1 = new DHElement ();
-          e1.name = "1E"+i.to_string ();
-          ce.elements1.set (e1.key, e1.name, e1);
-          var e2 = new DHElement ();
-          e2.name = "2E"+i.to_string ();
-          ce.elements2.set (e2.key, e2.name, e2);
-        }
-        ce.serialize (d);
-        time = Test.timer_elapsed ();
-        Test.minimized_result (time, "Created document: %g seconds", time);
-        Test.message ("Starting deserializing document: Enable collection deserialization...");
-        Test.timer_start ();
-        var cep = new DHCElement ();
-        cep.elements1.enable_deserialize = true;
-        cep.elements2.enable_deserialize = true;
-        cep.deserialize (d);
-        time = Test.timer_elapsed ();
-        Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds", 
time);
-        assert (cep.elements1.is_prepared ());
-        assert (cep.elements2.is_prepared ());
-        assert (!cep.elements1.deserialize_children ());
-        assert (!cep.elements2.deserialize_children ());
-      } catch (GLib.Error e) {
-        GLib.message ("ERROR: "+e.message);
-        assert_not_reached ();
-      }
-    });
   }
 }
diff --git a/test/gxml-performance.vala b/test/gxml-performance.vala
index 988a1e9..88dd8ed 100644
--- a/test/gxml-performance.vala
+++ b/test/gxml-performance.vala
@@ -173,6 +173,26 @@ public class Performance
     public override string node_name () { return "HCElement"; }
     public override string to_string () { return "HCElement"; }
   }
+  // DualKeyMap
+  class DHElement : SerializableObjectModel, SerializableMapDualKey<string,string>
+  {
+    public string name { get; set; }
+    public string key { get; set; }
+    public string get_map_primary_key  () { return key; }
+    public string get_map_secondary_key () { return name; }
+    public override string node_name () { return "DHElement"; }
+    public override string to_string () { return "DHElement"; }
+    public class DualKeyMap : SerializableDualKeyMap<string,string,DHElement> {
+      public bool enable_deserialize { get; set; default = false; }
+      public override bool deserialize_proceed () { return enable_deserialize; }
+    }
+  }
+  class DHCElement : SerializableObjectModel {
+    public DHElement.DualKeyMap elements1 { get; set; default = new DHElement.DualKeyMap (); }
+    public DHElement.DualKeyMap elements2 { get; set; default = new DHElement.DualKeyMap (); }
+    public override string node_name () { return "DHCElement"; }
+    public override string to_string () { return "DHCElement"; }
+  }
   /**
    * Iterate recursively through all node and children nodes in document.
    */
@@ -576,6 +596,90 @@ public class Performance
         assert_not_reached ();
       }
     });
+    Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/disable",
+    () => {
+      try {
+        double time;
+        Test.message ("Starting generating document...");
+        Test.timer_start ();
+        var d = new TwDocument ();
+        var ce = new DHCElement ();
+        for (int i = 0; i < 125000; i++) {
+          var e1 = new DHElement ();
+          e1.key = "E1";
+          e1.name = "1E"+i.to_string ();
+          ce.elements1.set (e1.key, e1.name, e1);
+          var e2 = new DHElement ();
+          e2.key = "E2";
+          e2.name = "2E"+i.to_string ();
+          ce.elements2.set (e2.key, e2.name, e2);
+        }
+        ce.serialize (d);
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "Created document: %g seconds", time);
+        Test.message ("Starting deserializing document: Disable collection deserialization...");
+        Test.timer_start ();
+        var cep = new DHCElement ();
+        cep.elements1.enable_deserialize = false;
+        cep.elements2.enable_deserialize = false;
+        cep.deserialize (d);
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds", 
time);
+        assert (cep.elements1.is_prepared ());
+        assert (cep.elements2.is_prepared ());
+        Test.message ("Calling C1 deserialize_children()...");
+        Test.timer_start ();
+        cep.elements1.deserialize_children ();
+        assert (!cep.elements1.deserialize_children ());
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "C1: Disable Deserialize Collection. Deserialized from NODE: %g 
seconds", time);
+        Test.message ("Calling C2 deserialize_children()...");
+        Test.timer_start ();
+        cep.elements2.deserialize_children ();
+        assert (!cep.elements2.deserialize_children ());
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "C2: Disable Deserialize Collection. Deserialized from NODE: %g 
seconds", time);
+      } catch (GLib.Error e) {
+        GLib.message ("ERROR: "+e.message);
+        assert_not_reached ();
+      }
+    });
+    Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/enable",
+    () => {
+      try {
+        double time;
+        Test.message ("Starting generating document...");
+        Test.timer_start ();
+        var d = new TwDocument ();
+        var ce = new DHCElement ();
+        for (int i = 0; i < 125000; i++) {
+          var e1 = new DHElement ();
+          e1.name = "1E"+i.to_string ();
+          ce.elements1.set (e1.key, e1.name, e1);
+          var e2 = new DHElement ();
+          e2.name = "2E"+i.to_string ();
+          ce.elements2.set (e2.key, e2.name, e2);
+        }
+        ce.serialize (d);
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "Created document: %g seconds", time);
+        Test.message ("Starting deserializing document: Enable collection deserialization...");
+        Test.timer_start ();
+        var cep = new DHCElement ();
+        cep.elements1.enable_deserialize = true;
+        cep.elements2.enable_deserialize = true;
+        cep.deserialize (d);
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds", 
time);
+        assert (cep.elements1.is_prepared ());
+        assert (cep.elements2.is_prepared ());
+        assert (!cep.elements1.deserialize_children ());
+        assert (!cep.elements2.deserialize_children ());
+      } catch (GLib.Error e) {
+        GLib.message ("ERROR: "+e.message);
+        assert_not_reached ();
+      }
+    });
 #endif
   }
 }


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