[gxml] Set version to 0.9.1: API Changes
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gxml] Set version to 0.9.1: API Changes
- Date: Wed, 24 Feb 2016 19:48:12 +0000 (UTC)
commit cfa2aa2afec3780cff50fae983bc16b0121c9926
Author: Daniel Espinosa <esodan gmail com>
Date: Mon Feb 22 18:39:05 2016 -0600
Set version to 0.9.1: API Changes
* API change Serializable.deserialize now return a boolean
* API change SerializableCollection: added new abstract methods
NEWS | 8 ++++++++
configure.ac | 2 +-
gxml/Serializable.vala | 2 +-
gxml/SerializableContainer.vala | 29 +++++++++++++++++++++++++++++
gxml/SerializableGeeArrayList.vala | 15 +++++++++++----
gxml/SerializableGeeDualKeyMap.vala | 13 ++++++++++---
gxml/SerializableGeeHashMap.vala | 15 ++++++++++++---
gxml/SerializableGeeTreeMap.vala | 13 ++++++++++---
gxml/SerializableObjectModel.vala | 8 ++++----
test/SerializableObjectModelTest.vala | 2 +-
10 files changed, 87 insertions(+), 20 deletions(-)
---
diff --git a/NEWS b/NEWS
index 4bae2de..69c68d1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,12 @@
===============
+Version 0.9.2
+===============
+
+* API change Serializable.deserialize now return a boolean
+* API change SerializableCollection: added new abstract methods
+
+
+===============
Version 0.9.1
===============
diff --git a/configure.ac b/configure.ac
index 14bee7f..362d23c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@
# Release Version
m4_define([project_major_version], [0])
m4_define([project_minor_version], [9])
-m4_define([project_micro_version], [1])
+m4_define([project_micro_version], [2])
m4_define([project_nano_version], [0])
# LT_VERSION
diff --git a/gxml/Serializable.vala b/gxml/Serializable.vala
index 3498bb7..8147a3e 100644
--- a/gxml/Serializable.vala
+++ b/gxml/Serializable.vala
@@ -166,7 +166,7 @@ namespace GXml {
*
* @param node { link GXml.Node} used to deserialize from.
*/
- public abstract GXml.Node? deserialize (GXml.Node node)
+ public abstract bool deserialize (GXml.Node node)
throws GLib.Error;
/**
* Handles deserializing individual properties.
diff --git a/gxml/SerializableContainer.vala b/gxml/SerializableContainer.vala
index 1191903..379ed18 100644
--- a/gxml/SerializableContainer.vala
+++ b/gxml/SerializableContainer.vala
@@ -45,5 +45,34 @@ public abstract class GXml.SerializableContainer : SerializableObjectModel
*/
public interface GXml.SerializableCollection : Object, Gee.Traversable<Serializable>, Serializable
{
+ /**
+ * Returns true if the collection was deserialized from a { link GXml.Node}'s children.
+ */
+ 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}
+ * return false;
+ *
+ * This could override existing objects in collection.
+ */
+ public abstract bool deserialize_node (GXml.Node node);
+ /**
+ * Executes a deserialization from all children nodes in 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}
+ * return false;
+ *
+ * This could override existing objects in collection.
+ */
+ public abstract bool deserialize_children (GXml.Node node);
+ /**
+ * Convenient function to detect Serializable Collections.
+ */
public virtual bool is_collection () { return true; }
}
diff --git a/gxml/SerializableGeeArrayList.vala b/gxml/SerializableGeeArrayList.vala
index c4f5c9b..ccf35f8 100644
--- a/gxml/SerializableGeeArrayList.vala
+++ b/gxml/SerializableGeeArrayList.vala
@@ -32,7 +32,14 @@ public class GXml.SerializableArrayList<G> : Gee.ArrayList<G>, Serializable, Ser
{
Gee.HashMap<string,GXml.Attribute> _unknown_serializable_property = new Gee.HashMap<string,GXml.Attribute>
();
Gee.ArrayList<GXml.Node> _unknown_serializable_nodes = new Gee.ArrayList<GXml.Node> ();
-
+ GXml.Node _node;
+
+ // SerializableCollection interface
+ public virtual bool deserialized () { return true; }
+ public virtual bool is_prepared () { return (_node is GXml.Node); }
+ public virtual bool deserialize_node (GXml.Node node) { return deserialize_property (node); }
+ public virtual bool deserialize_children (GXml.Node node) { return deserialize (node); }
+
construct { Init.init (); }
public Gee.Map<string,GXml.Attribute> unknown_serializable_properties
@@ -101,13 +108,13 @@ public class GXml.SerializableArrayList<G> : Gee.ArrayList<G>, Serializable, Ser
{
return element;
}
- public virtual GXml.Node? deserialize (GXml.Node node)
+ public virtual bool deserialize (GXml.Node node)
throws GLib.Error
requires (node_name () != null)
{
return default_deserialize (node);
}
- public GXml.Node? default_deserialize (GXml.Node node)
+ public bool default_deserialize (GXml.Node node)
throws GLib.Error
{
if (!element_type.is_a (typeof (GXml.Serializable))) {
@@ -122,7 +129,7 @@ public class GXml.SerializableArrayList<G> : Gee.ArrayList<G>, Serializable, Ser
deserialize_property (n);
}
}
- return node;
+ return true;
}
public virtual bool deserialize_property (GXml.Node property_node)
throws GLib.Error
diff --git a/gxml/SerializableGeeDualKeyMap.vala b/gxml/SerializableGeeDualKeyMap.vala
index fd7d387..afc6ca8 100644
--- a/gxml/SerializableGeeDualKeyMap.vala
+++ b/gxml/SerializableGeeDualKeyMap.vala
@@ -31,6 +31,13 @@ using Gee;
public class GXml.SerializableDualKeyMap<P,S,V> : Object, Gee.Traversable <V>, Serializable,
SerializableCollection
{
protected Gee.HashMultiMap<P,HashMap<S,V>> storage;
+ GXml.Node _node;
+
+ // SerializableCollection interface
+ public virtual bool deserialized () { return true; }
+ public virtual bool is_prepared () { return (_node is GXml.Node); }
+ public virtual bool deserialize_node (GXml.Node node) { return deserialize_property (node); }
+ public virtual bool deserialize_children (GXml.Node node) { return deserialize (node); }
construct { Init.init (); }
@@ -181,13 +188,13 @@ public class GXml.SerializableDualKeyMap<P,S,V> : Object, Gee.Traversable <V>, S
{
return element;
}
- public virtual GXml.Node? deserialize (GXml.Node node)
+ public virtual bool deserialize (GXml.Node node)
throws GLib.Error
requires (node_name () != null)
{
return default_deserialize (node);
}
- public GXml.Node? default_deserialize (GXml.Node node)
+ public bool default_deserialize (GXml.Node node)
throws GLib.Error
requires (node is Element)
{
@@ -217,7 +224,7 @@ public class GXml.SerializableDualKeyMap<P,S,V> : Object, Gee.Traversable <V>, S
}
}
}
- return node;
+ return true;
}
public virtual bool deserialize_property (GXml.Node property_node)
throws GLib.Error
diff --git a/gxml/SerializableGeeHashMap.vala b/gxml/SerializableGeeHashMap.vala
index b6fe8a6..63441aa 100644
--- a/gxml/SerializableGeeHashMap.vala
+++ b/gxml/SerializableGeeHashMap.vala
@@ -30,9 +30,18 @@ public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, Ser
{
Gee.HashMap<string,GXml.Attribute> _unknown_serializable_property = new Gee.HashMap<string,GXml.Attribute>
();
Gee.ArrayList<GXml.Node> _unknown_serializable_nodes = new Gee.ArrayList<GXml.Node> ();
+ GXml.Node _node;
+ // SerializableCollection interface
+ public virtual bool deserialized () { return true; }
+ public virtual bool is_prepared () { return (_node is GXml.Node); }
+ public virtual bool deserialize_node (GXml.Node node) { return deserialize_property (node); }
+ public virtual bool deserialize_children (GXml.Node node) { return deserialize (node); }
+
+ // Construct
construct { Init.init (); }
+ // Serializable interface
public Gee.Map<string,GXml.Attribute> unknown_serializable_properties
{
owned get {
@@ -98,13 +107,13 @@ public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, Ser
{
return element;
}
- public virtual GXml.Node? deserialize (GXml.Node node)
+ public virtual bool deserialize (GXml.Node node)
throws GLib.Error
requires (node_name () != null)
{
return default_deserialize (node);
}
- public GXml.Node? default_deserialize (GXml.Node node)
+ public bool default_deserialize (GXml.Node node)
throws GLib.Error
{
if (!(value_type.is_a (typeof (GXml.Serializable)) &&
@@ -126,7 +135,7 @@ public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, Ser
}
}
}
- return node;
+ return true;
}
public virtual bool deserialize_property (GXml.Node property_node)
throws GLib.Error
diff --git a/gxml/SerializableGeeTreeMap.vala b/gxml/SerializableGeeTreeMap.vala
index 81d550d..02586d3 100644
--- a/gxml/SerializableGeeTreeMap.vala
+++ b/gxml/SerializableGeeTreeMap.vala
@@ -30,6 +30,13 @@ public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable, Ser
{
Gee.HashMap<string,GXml.Attribute> _unknown_serializable_property = new Gee.HashMap<string,GXml.Attribute>
();
Gee.ArrayList<GXml.Node> _unknown_serializable_nodes = new Gee.ArrayList<GXml.Node> ();
+ GXml.Node _node;
+
+ // SerializableCollection interface
+ public virtual bool deserialized () { return true; }
+ public virtual bool is_prepared () { return (_node is GXml.Node); }
+ public virtual bool deserialize_node (GXml.Node node) { return deserialize_property (node); }
+ public virtual bool deserialize_children (GXml.Node node) { return deserialize (node); }
construct { Init.init (); }
@@ -101,13 +108,13 @@ public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable, Ser
{
return element;
}
- public virtual GXml.Node? deserialize (GXml.Node node)
+ public virtual bool deserialize (GXml.Node node)
throws GLib.Error
requires (node_name () != null)
{
return default_deserialize (node);
}
- public GXml.Node? default_deserialize (GXml.Node node)
+ public bool default_deserialize (GXml.Node node)
throws GLib.Error
{
if (!(value_type.is_a (typeof (GXml.Serializable)) &&
@@ -129,7 +136,7 @@ public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable, Ser
}
}
}
- return node;
+ return true;
}
public virtual bool deserialize_property (GXml.Node property_node)
throws GLib.Error
diff --git a/gxml/SerializableObjectModel.vala b/gxml/SerializableObjectModel.vala
index 54c65f9..6d0a16e 100644
--- a/gxml/SerializableObjectModel.vala
+++ b/gxml/SerializableObjectModel.vala
@@ -292,13 +292,13 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
return attr;
}
- public virtual GXml.Node? deserialize (GXml.Node node)
+ public virtual bool deserialize (GXml.Node node)
throws GLib.Error
requires (node_name () != null)
{
return default_deserialize (node);
}
- public GXml.Node? default_deserialize (GXml.Node node)
+ public bool default_deserialize (GXml.Node node)
throws GLib.Error
{
Document doc;
@@ -316,7 +316,7 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
return_val_if_fail (element != null, null);
if (node_name () == null) {
GLib.warning (_("WARNING: Object type '%s' have no Node Name defined").printf (get_type ().name ()));
- return null;
+ return false;
}
if (element.name.down () != node_name ().down ()) {
GLib.warning (_("Actual node's name is '%s' expected '%s'").printf (element.name.down (),node_name
().down ()));
@@ -385,7 +385,7 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
#endif
deserialize_property (n);
}
- return null;
+ return true;
}
public virtual bool deserialize_property (GXml.Node property_node)
diff --git a/test/SerializableObjectModelTest.vala b/test/SerializableObjectModelTest.vala
index f1a9399..dce9d41 100644
--- a/test/SerializableObjectModelTest.vala
+++ b/test/SerializableObjectModelTest.vala
@@ -251,7 +251,7 @@ class Configuration : ObjectModel
n.set_namespace ("http://www.gnome.org/gxml/0.4", "om");
return (GXml.Node)n;
}
- public override GXml.Node? deserialize (GXml.Node node) throws GLib.Error
+ public override bool deserialize (GXml.Node node) throws GLib.Error
{
#if DEBUG
GLib.message (@"CONFIGURATOR: Deserializing... $(node.to_string ())");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]