[gxml/serialization] Addedo SerializableCollection to allow not just Gee collections
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gxml/serialization] Addedo SerializableCollection to allow not just Gee collections
- Date: Wed, 29 Jan 2014 00:44:49 +0000 (UTC)
commit 50b174718be05e2fdac871ed35094450fff0bf0f
Author: Daniel Espinosa <esodan gmail com>
Date: Tue Jan 28 18:43:09 2014 -0600
Addedo SerializableCollection to allow not just Gee collections
gxml/SerializableContainer.vala | 13 ++++++++++++-
gxml/SerializableGeeArrayList.vala | 4 ++--
gxml/SerializableGeeDualKeyMap.vala | 4 ++--
gxml/SerializableGeeHashMap.vala | 4 ++--
gxml/SerializableGeeTreeMap.vala | 4 ++--
gxml/SerializableObjectModel.vala | 8 ++------
6 files changed, 22 insertions(+), 15 deletions(-)
---
diff --git a/gxml/SerializableContainer.vala b/gxml/SerializableContainer.vala
index 5d6dd65..f17dc7a 100644
--- a/gxml/SerializableContainer.vala
+++ b/gxml/SerializableContainer.vala
@@ -19,9 +19,20 @@
* Authors:
* Daniel Espinosa <esodan gmail com>
*/
-
+/**
+ * Any class having a collection managed list of nodes must implement this
+ * abstract class.
+ */
public abstract class GXml.SerializableContainer : SerializableObjectModel
{
/* Xom interface properties */
public abstract void init_containers ();
}
+
+/**
+ * Fake interface to be implemented by any collection.
+ */
+public interface GXml.SerializableCollection : Object, Serializable
+{
+ public virtual bool is_collection () { return true; }
+}
diff --git a/gxml/SerializableGeeArrayList.vala b/gxml/SerializableGeeArrayList.vala
index 6991de5..4ca42a6 100644
--- a/gxml/SerializableGeeArrayList.vala
+++ b/gxml/SerializableGeeArrayList.vala
@@ -1,7 +1,7 @@
/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/* SerializableGeeTreeModel.vala
*
- * Copyright (C) 2013 Daniel Espinosa <esodan gmail com>
+ * Copyright (C) 2013, 2014 Daniel Espinosa <esodan gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -22,7 +22,7 @@
using GXml;
using Gee;
-public class GXml.SerializableArrayList<G> : Gee.ArrayList<G>, Serializable
+public class GXml.SerializableArrayList<G> : Gee.ArrayList<G>, Serializable, SerializableCollection
{
protected ParamSpec[] properties { get; set; }
public GLib.HashTable<string,GLib.ParamSpec> ignored_serializable_properties { get; protected set; }
diff --git a/gxml/SerializableGeeDualKeyMap.vala b/gxml/SerializableGeeDualKeyMap.vala
index 54b6b10..667bdfe 100644
--- a/gxml/SerializableGeeDualKeyMap.vala
+++ b/gxml/SerializableGeeDualKeyMap.vala
@@ -22,9 +22,9 @@
using GXml;
using Gee;
-public class GXml.SerializableDualKeyMap<P,S,V> : Object, Serializable
+public class GXml.SerializableDualKeyMap<P,S,V> : Object, Serializable, SerializableCollection
{
- private Gee.HashMultiMap<P,HashMap<S,V>> storage;
+ protected Gee.HashMultiMap<P,HashMap<S,V>> storage;
public Type value_type
{
diff --git a/gxml/SerializableGeeHashMap.vala b/gxml/SerializableGeeHashMap.vala
index 30d157e..a7ce625 100644
--- a/gxml/SerializableGeeHashMap.vala
+++ b/gxml/SerializableGeeHashMap.vala
@@ -1,7 +1,7 @@
/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/* SerializableGeeTreeModel.vala
*
- * Copyright (C) 2013 Daniel Espinosa <esodan gmail com>
+ * Copyright (C) 2013, 2014 Daniel Espinosa <esodan gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -21,7 +21,7 @@
*/
using GXml;
-public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable
+public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, SerializableCollection
{
protected ParamSpec[] properties { get; set; }
public GLib.HashTable<string,GLib.ParamSpec> ignored_serializable_properties { get; protected set; }
diff --git a/gxml/SerializableGeeTreeMap.vala b/gxml/SerializableGeeTreeMap.vala
index 12cce8c..4f3efd2 100644
--- a/gxml/SerializableGeeTreeMap.vala
+++ b/gxml/SerializableGeeTreeMap.vala
@@ -1,7 +1,7 @@
/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/* SerializableGeeTreeModel.vala
*
- * Copyright (C) 2013 Daniel Espinosa <esodan gmail com>
+ * Copyright (C) 2013, 2014 Daniel Espinosa <esodan gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -21,7 +21,7 @@
*/
using GXml;
-public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable
+public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable, SerializableCollection
{
protected ParamSpec[] properties { get; set; }
public GLib.HashTable<string,GLib.ParamSpec> ignored_serializable_properties { get; protected set; }
diff --git a/gxml/SerializableObjectModel.vala b/gxml/SerializableObjectModel.vala
index a03a08c..c0e3146 100644
--- a/gxml/SerializableObjectModel.vala
+++ b/gxml/SerializableObjectModel.vala
@@ -1,7 +1,7 @@
/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 0; tab-width: 4 -*- */
/* ObjectModel.vala
*
- * Copyright (C) 2013 Daniel Espinosa <esodan gmail com>
+ * Copyright (C) 2013, 2014 Daniel Espinosa <esodan gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -249,11 +249,7 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
{
if (spec.value_type.is_a (typeof (Serializable)))
{
- if (spec.value_type.is_a (typeof (SerializableTreeMap))
- || spec.value_type.is_a (typeof (SerializableHashMap))
- || spec.value_type.is_a (typeof (SerializableDualKeyMap))
- || spec.value_type.is_a (typeof (SerializableArrayList))
- )
+ if (spec.value_type.is_a (typeof (SerializableCollection)))
{
Value vo = Value (spec.value_type);
get_property (spec.name, ref vo);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]