diff --git a/gxml/Document.vala b/gxml/Document.vala index 22ce14c3732d4b1ecae3ed3693183c6ec934429d..dc123726afa3591997b69529cc9f91b9270aad33 100644 --- a/gxml/Document.vala +++ b/gxml/Document.vala @@ -26,4 +26,5 @@ public interface GXml.Document : Object, GXml.Node { public abstract GXml.Node root { get; } public abstract GLib.File file { get; set; } + public abstract GXml.Node create_element (string name); } diff --git a/gxml/SerializableJson.vala b/gxml/SerializableJson.vala index c6d2698eb08daadaf075c613c96db3f5467248b2..bc4c48f843d4fc25f8d4e7a029bc077c746ee771 100644 --- a/gxml/SerializableJson.vala +++ b/gxml/SerializableJson.vala @@ -128,7 +128,7 @@ public class GXml.SerializableJson : GLib.Object, GXml.Serializable else doc = node.owner_document; - root = doc.create_element ("Object"); + root = (xElement) doc.create_element ("Object"); doc.append_child (root); root.set_attribute ("otype", this.get_type ().name ()); root.set_attribute ("oid", oid); @@ -157,7 +157,7 @@ public class GXml.SerializableJson : GLib.Object, GXml.Serializable } var doc = element.owner_document; - prop_node = doc.create_element ("Property"); + prop_node = (xElement) doc.create_element ("Property"); prop_node.set_attribute ("ptype", prop.value_type.name ()); prop_node.set_attribute ("pname", prop.name); element.append_child (prop_node); @@ -198,7 +198,7 @@ public class GXml.SerializableJson : GLib.Object, GXml.Serializable this.get_property_value (prop, ref val); child_object = val.get_object (); xDocument value_doc = Serialization.serialize_object (child_object); - value_node = doc.create_element ("fake"); + value_node = (xNode) doc.create_element ("fake"); value_doc.document_element.copy (ref value_node, true); //value_node = doc.copy_node (value_doc.document_element); prop_node.append_child (value_node); diff --git a/gxml/SerializableObjectModel.vala b/gxml/SerializableObjectModel.vala index 7ebe8c5695181f9086b9aa3a7896ea26fd42f2f0..6f4a608eb5cdbe93a38b471e7c792e25ac514e20 100644 --- a/gxml/SerializableObjectModel.vala +++ b/gxml/SerializableObjectModel.vala @@ -110,7 +110,7 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable doc = (xDocument) node; else doc = node.owner_document; - var element = doc.create_element (node_name ()); + var element = (xElement) doc.create_element (node_name ()); node.append_child (element); if (serialize_set_namespace != null) { string[] str = serialize_set_namespace.split ("|", 2); diff --git a/gxml/Serialization.vala b/gxml/Serialization.vala index 381536c03991f8945ea5737fd45788ead4cee862..147ca5c6049b81c7aa2d3e2479bbf3b0ba62c775 100644 --- a/gxml/Serialization.vala +++ b/gxml/Serialization.vala @@ -238,7 +238,7 @@ namespace GXml { // first, check if its been serialised already, and if so, just return an ObjectRef element for it. if (oid != "" && Serialization.serialize_cache.contains (oid)) { // GLib.message ("cache hit on oid %s", oid); - root = doc.create_element ("ObjectRef"); + root = (xElement) doc.create_element ("ObjectRef"); doc.append_child (root); root.set_attribute ("otype", object.get_type ().name ()); root.set_attribute ("oid", oid); @@ -251,7 +251,7 @@ namespace GXml { return doc; } // For now and on assume is not a Serializable object - root = doc.create_element ("Object"); + root = (xElement) doc.create_element ("Object"); doc.append_child (root); root.set_attribute ("otype", object.get_type ().name ()); root.set_attribute ("oid", oid); @@ -269,7 +269,7 @@ namespace GXml { strings. (Too bad deserialising isn't that easy w.r.t. string conversion.) */ foreach (ParamSpec prop_spec in prop_specs) { - prop = doc.create_element ("Property"); + prop = (xElement) doc.create_element ("Property"); prop.set_attribute ("ptype", prop_spec.value_type.name ()); prop.set_attribute ("pname", prop_spec.name); value_prop = Serialization.serialize_property (object, prop_spec, doc); diff --git a/gxml/libxml-Document.vala b/gxml/libxml-Document.vala index 44dec788700cf622a9f322ebb27faeea2569244d..525cfc9c48888e9a6a9f42a2acaada928d67ce26 100644 --- a/gxml/libxml-Document.vala +++ b/gxml/libxml-Document.vala @@ -242,7 +242,7 @@ namespace GXml { this.implementation = impl; xNode root; - root = this.create_element (qualified_name); // TODO: we do not currently support namespaces, but when we do, this new node will want one + root = (xNode) this.create_element (qualified_name); // TODO: we do not currently support namespaces, but when we do, this new node will want one this.append_child (root); this.namespace_uri = namespace_uri; @@ -606,7 +606,7 @@ namespace GXml { * * @return A new {@link GXml.xElement}; this should not be freed */ - public unowned xElement create_element (string tag_name) { + public GXml.Node create_element (string tag_name) { // TODO: what should we be passing for ns other than old_ns? Figure it out; needed for level 2+ support Xml.Node *xmlelem; diff --git a/test/DocumentTest.vala b/test/DocumentTest.vala index c02b8dba271288744a285a6166e4068b3f9493b2..394ed39668a5390eb621453c199a699e9f0b4ffe 100644 --- a/test/DocumentTest.vala +++ b/test/DocumentTest.vala @@ -1,4 +1,4 @@ -/* -*- Mode: vala; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* -*- Mode: vala; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */ /* Notation.vala * * Copyright (C) 2011-2013 Richard Schwarting @@ -232,12 +232,12 @@ class DocumentTest : GXmlTest { xDocument doc = get_doc (); xElement elem = null; - elem = doc.create_element ("Banana"); + elem = (xElement) doc.create_element ("Banana"); test_error (DomException.NONE); assert (elem.tag_name == "Banana"); assert (elem.tag_name != "banana"); - elem = doc.create_element ("ØÏØÏØ¯ÏØÏ ²øœ³¤ïØ£"); + elem = (xElement) doc.create_element ("ØÏØÏØ¯ÏØÏ ²øœ³¤ïØ£"); test_error (DomException.INVALID_CHARACTER); // assert (elem == null); // TODO: decide what we want returned on DomExceptions }); @@ -246,18 +246,18 @@ class DocumentTest : GXmlTest { DocumentFragment fragment = doc.create_document_fragment (); // TODO: can we set XML in the content, and actually have that translate into real libxml2 underlying nodes? - xElement percy = doc.create_element ("Author"); - xElement percy_name = doc.create_element ("Name"); - xElement percy_email = doc.create_element ("Email"); + xElement percy = (xElement) doc.create_element ("Author"); + xElement percy_name = (xElement) doc.create_element ("Name"); + xElement percy_email = (xElement) doc.create_element ("Email"); percy_name.content = "Percy"; percy_email.content = "pweasley@hogwarts.co.uk"; percy.append_child (percy_name); percy.append_child (percy_email); fragment.append_child (percy); - xElement ginny = doc.create_element ("Author"); - xElement ginny_name = doc.create_element ("Name"); - xElement ginny_email = doc.create_element ("Email"); + xElement ginny = (xElement) doc.create_element ("Author"); + xElement ginny_name = (xElement) doc.create_element ("Name"); + xElement ginny_email = (xElement) doc.create_element ("Email"); ginny_name.content = "Ginny"; ginny_email.content = "weasleyg@hogwarts.co.uk"; ginny.append_child (ginny_name); diff --git a/test/ElementTest.vala b/test/ElementTest.vala index c3dddab41a258737cf2a66428eccc26655226fea..e3d5d064bea4682d03008e6c66f59d5d89fcfb37 100644 --- a/test/ElementTest.vala +++ b/test/ElementTest.vala @@ -131,7 +131,7 @@ class ElementTest : GXmlTest { doc = get_doc (); - elem = doc.create_element ("alphanumeric"); + elem = (xElement) doc.create_element ("alphanumeric"); attributes = elem.attributes; assert (attributes != null); @@ -322,21 +322,21 @@ class ElementTest : GXmlTest { assert (ts.length == 5); // Test adding direct child - bs.append_child (t1 = doc.create_element ("t")); + bs.append_child (t1 = (xElement) doc.create_element ("t")); assert (ts.length == 6); // Test adding descendant - b3.append_child (doc.create_element ("t")); + b3.append_child ((xElement) doc.create_element ("t")); assert (ts.length == 7); // Test situation where we add a node tree GXml.xNode b4; GXml.xNode d, d2; - b4 = doc.create_element ("B"); - b4.append_child (doc.create_element ("t")); - d = doc.create_element ("D"); - d.append_child (t2 = doc.create_element ("t")); + b4 = (xElement) doc.create_element ("B"); + b4.append_child ((xElement) doc.create_element ("t")); + d = (xElement) doc.create_element ("D"); + d.append_child (t2 = (xElement) doc.create_element ("t")); b4.append_child (d); bs.append_child (b4); @@ -344,8 +344,8 @@ class ElementTest : GXmlTest { assert (ts.length == 9); // Test situation where we use insert_before - d2 = doc.create_element ("D"); - d2.append_child (doc.create_element ("t")); + d2 = (xElement) doc.create_element ("D"); + d2.append_child ((xElement) doc.create_element ("t")); b4.insert_before (d2, d); assert (ts.length == 10); @@ -354,12 +354,12 @@ class ElementTest : GXmlTest { DocumentFragment frag; frag = doc.create_document_fragment (); - frag.append_child (doc.create_element ("t")); - d = doc.create_element ("D"); - d.append_child (doc.create_element ("t")); + frag.append_child ((xElement) doc.create_element ("t")); + d = (xElement) doc.create_element ("D"); + d.append_child ((xElement) doc.create_element ("t")); frag.append_child (d); - d2 = doc.create_element ("D"); - d2.append_child (doc.create_element ("t")); + d2 = (xElement) doc.create_element ("D"); + d2.append_child ((xElement) doc.create_element ("t")); frag.insert_before (d2, d); b4.append_child (frag); @@ -411,8 +411,8 @@ class ElementTest : GXmlTest { }); Test.add_func ("/gxml/element/content/set", () =>{ var doc = new xDocument (); - var root = doc.create_element ("root"); - doc.append_child (root); + var root = (xElement) doc.create_element ("root"); + doc.append_child ((xNode) root); root.content = "TEXT1"; string d = """ TEXT1 @@ -424,9 +424,9 @@ class ElementTest : GXmlTest { }); Test.add_func ("/gxml/element/content/overwrite_child_nodes", () =>{ var doc = new xDocument (); - var root = doc.create_element ("root"); + var root = (xElement) doc.create_element ("root"); doc.append_child (root); - var n = doc.create_element ("child"); + var n = (xElement) doc.create_element ("child"); root.append_child (n); // This will remove all child nodes root.content = "TEXT1"; @@ -440,12 +440,12 @@ class ElementTest : GXmlTest { }); Test.add_func ("/gxml/element/content/keep_child_nodes", () =>{ var doc = new xDocument (); - var root = doc.create_element ("root"); + var root = (xElement) doc.create_element ("root"); doc.append_child (root); - var n = doc.create_element ("child"); + var n = (xElement) doc.create_element ("child"); root.append_child (n); // This will remove all child nodes - var t = doc.create_text_node ("TEXT1"); + var t = (xElement) doc.create_text_node ("TEXT1"); root.append_child (t); string d = """ TEXT1 diff --git a/test/GXmlTest.vala b/test/GXmlTest.vala index dbf14dba82f79de19955fbf73036255cbd52f7d1..aada789f6a915eb3bda53964dcb1124947c3d376 100644 --- a/test/GXmlTest.vala +++ b/test/GXmlTest.vala @@ -114,7 +114,7 @@ class GXmlTest { } internal static xElement get_elem (string name, xDocument doc) { - xElement elem = doc.create_element (name); + xElement elem = (xElement) doc.create_element (name); return elem; } diff --git a/test/NamespaceTest.vala b/test/NamespaceTest.vala index 3a8f9f0dc445f8d1a169049ac7e9ee9caf501b8a..0de4b5a43d52265412b0a139d1fe69a77e38208e 100644 --- a/test/NamespaceTest.vala +++ b/test/NamespaceTest.vala @@ -27,22 +27,22 @@ class NamespaceTest : GXmlTest { public static void add_tests () { Test.add_func ("/gxml/domnode/namespace", () => { var d = new xDocument (); - var e = d.create_element ("root"); + var e = (xElement) d.create_element ("root"); e.add_namespace_attr ("http://www.gnome.org/GXml", "gxml"); e.add_namespace_attr ("http://www.gnome.org/GXmlSerializable", "gxmls"); d.append_child (e); assert (e.to_string () == ""); assert (e.set_namespace ("http://www.gnome.org/GXml", "gxml")); assert (e.to_string () == ""); - var c = d.create_element ("child"); + var c = (xElement) d.create_element ("child"); e.append_child (c); assert (c.set_namespace ("http://www.gnome.org/GXml", "gxml")); assert (c.to_string () == ""); - var c2 = d.create_element ("subchild"); + var c2 = (xElement) d.create_element ("subchild"); e.append_child (c2); assert (c2.set_namespace ("http://www.gnome.org/GXmlSerializable", "gxmls")); assert (c2.to_string () == ""); - var c3 = d.create_element ("testnode"); + var c3 = (xElement) d.create_element ("testnode"); // Check if an Element with no namespaces will not fail and go to root e.append_child (c3); c3.set_namespace ("http://www.gnome.org/GXml", "gxml"); diff --git a/test/NodeTest.vala b/test/NodeTest.vala index ea5a03455fec2d2a55e684698cf0f125e8abd917..9c6bbac1578c854b0622c007021c6d114d5404d4 100644 --- a/test/NodeTest.vala +++ b/test/NodeTest.vala @@ -124,7 +124,7 @@ class NodeTest : GXmlTest { GXml.xNode node; - node = doc.create_element ("elem"); + node = (xElement) doc.create_element ("elem"); assert (node.node_value == null); node = doc.create_attribute ("name"); diff --git a/test/SerializableGeeArrayListTest.vala b/test/SerializableGeeArrayListTest.vala index 8e76f6e8b923f69e72decb93ffb57a13c15236b2..8d765a7bf95495427269a731314af827f35640c0 100644 --- a/test/SerializableGeeArrayListTest.vala +++ b/test/SerializableGeeArrayListTest.vala @@ -73,7 +73,7 @@ class SerializableGeeArrayListTest : GXmlTest c.add (o1); c.add (o2); var doc = new xDocument (); - var root = doc.create_element ("root"); + var root = (xElement) doc.create_element ("root"); doc.append_child (root); c.serialize (root); if (!root.has_child_nodes ()) { diff --git a/test/SerializableGeeDualKeyMapTest.vala b/test/SerializableGeeDualKeyMapTest.vala index ac963f965b82cb4e70350281aec31ded2a461fc7..7b28c6ebffc41f79a1e69daa8121080b4f34f8b0 100644 --- a/test/SerializableGeeDualKeyMapTest.vala +++ b/test/SerializableGeeDualKeyMapTest.vala @@ -143,7 +143,7 @@ class SerializableGeeDualKeyMapTest : GXmlTest c.set (o3.owner, o3.name, o3); c.set (o4.owner, o4.name, o4); var doc = new xDocument (); - var root = doc.create_element ("root"); + var root = (xElement) doc.create_element ("root"); doc.append_child (root); c.serialize (root); if (!root.has_child_nodes ()) { diff --git a/test/SerializableGeeHashMapTest.vala b/test/SerializableGeeHashMapTest.vala index 74b57bdcb0665d8d7d2113bd3f469bb1ee3b0aec..9c7cac032921699c161a9dce4a5ca7a843bed707 100644 --- a/test/SerializableGeeHashMapTest.vala +++ b/test/SerializableGeeHashMapTest.vala @@ -112,7 +112,7 @@ class SerializableGeeHashMapTest : GXmlTest c.set (o1.name, o1); c.set (o2.name, o2); var doc = new xDocument (); - var root = doc.create_element ("root"); + var root = (xElement) doc.create_element ("root"); doc.append_child (root); c.serialize (root); if (!root.has_child_nodes ()) { diff --git a/test/SerializableGeeTreeMapTest.vala b/test/SerializableGeeTreeMapTest.vala index 013a72df1e83b934545e51d39470302ed51c6e94..ad5e900d849e41fd9e0e03a3a0187aeab88a5f54 100644 --- a/test/SerializableGeeTreeMapTest.vala +++ b/test/SerializableGeeTreeMapTest.vala @@ -102,7 +102,7 @@ class SerializableGeeTreeMapTest : GXmlTest c.set (o1.name, o1); c.set (o2.name, o2); var doc = new xDocument (); - var root = doc.create_element ("root"); + var root = (xElement) doc.create_element ("root"); doc.append_child (root); c.serialize (root); if (!root.has_child_nodes ()) { diff --git a/test/SerializableObjectModelTest.vala b/test/SerializableObjectModelTest.vala index 0fda03b64ba1301517f71ecbd8c1acff7ebaa39e..824a78578293234ebe0dd5cdead27eca2cc91e01 100644 --- a/test/SerializableObjectModelTest.vala +++ b/test/SerializableObjectModelTest.vala @@ -131,7 +131,7 @@ public class Package : ObjectModel { for (int i = 0; i < tags.length; i++) { var str = tags.index (i); - node = element.owner_document.create_element ("tag"); + node = (xElement) element.owner_document.create_element ("tag"); ((xElement) node).content = str; element.append_child (node); } diff --git a/test/SerializableTest.vala b/test/SerializableTest.vala index 8fdf5b66ac3e1419b307d421f532ed9b9b54d37b..b467658ec33245e74927033b27b32cd2951d8ef6 100644 --- a/test/SerializableTest.vala +++ b/test/SerializableTest.vala @@ -126,7 +126,7 @@ public class SerializableCapsicum : GXml.SerializableJson { switch (prop.name) { case "ratings": foreach (int rating_int in ratings) { - xElement n = doc.create_element ("rating"); + xElement n = (xElement) doc.create_element ("rating"); n.content = "%d".printf (rating_int); element.append_child (n); }