[gxml] Fixed GAttribute implementation
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gxml] Fixed GAttribute implementation
- Date: Sat, 6 Feb 2016 05:02:18 +0000 (UTC)
commit 217f66320b26c6ec14e719773d71ddbf7f3dbabd
Author: Daniel Espinosa <esodan gmail com>
Date: Fri Feb 5 15:40:08 2016 -0600
Fixed GAttribute implementation
gxml/GXmlAttribute.vala | 14 ++++++++++++++
gxml/GXmlDocument.vala | 8 ++++++++
gxml/GXmlElement.vala | 19 ++++++++++++++++---
test/SerializableGeeDualKeyMapTest.vala | 5 -----
test/SerializableGeeTreeMapTest.vala | 15 +++++----------
5 files changed, 43 insertions(+), 18 deletions(-)
---
diff --git a/gxml/GXmlAttribute.vala b/gxml/GXmlAttribute.vala
index 4963767..49339d0 100644
--- a/gxml/GXmlAttribute.vala
+++ b/gxml/GXmlAttribute.vala
@@ -30,6 +30,7 @@ public class GXml.GAttribute : GXml.GNode, GXml.Attribute
public GAttribute (GDocument doc, Xml.Attr *node)
{
_attr = node;
+ Test.message ("Attr Name: "+node->name);
_node = _attr->parent;
_doc = doc;
}
@@ -43,6 +44,19 @@ public class GXml.GAttribute : GXml.GNode, GXml.Attribute
}
}
+ public override string name {
+ owned get {
+ return _attr->name.dup ();
+ }
+ }
+ public override string value {
+ owned get {
+ return _node->get_prop (_attr->name);
+ }
+ set {
+ _node->set_prop (_attr->name, value);
+ }
+ }
public string prefix {
owned get {
if (_attr == null) return "";
diff --git a/gxml/GXmlDocument.vala b/gxml/GXmlDocument.vala
index 110829d..d8c8930 100644
--- a/gxml/GXmlDocument.vala
+++ b/gxml/GXmlDocument.vala
@@ -162,6 +162,14 @@ public class GXml.GDocument : GXml.GNode, GXml.Document
doc.dump_memory (out str, out size);
return str;
}
+ /**
+ * Uses libxml2 internal dump to memory function over owned
+ */
+ public string libxml_to_string () {
+ string buffer;
+ doc->dump_memory (out buffer);
+ return buffer;
+ }
public virtual bool save (GLib.Cancellable? cancellable = null)
throws GLib.Error
{
diff --git a/gxml/GXmlElement.vala b/gxml/GXmlElement.vala
index 0b4ef49..360ff13 100644
--- a/gxml/GXmlElement.vala
+++ b/gxml/GXmlElement.vala
@@ -39,13 +39,26 @@ public class GXml.GElement : GXml.GNode, GXml.Element
set { content = value; }
}
// GXml.Element
- public void set_attr (string name, string value)
+ public void set_attr (string aname, string avalue)
{
- _node->new_prop (name, value);
+ if (":" in aname) {
+ string[] cname = aname.split(":");
+ if (cname.length > 2) return;
+ bool found = false;
+ foreach (Namespace ns in namespaces) {
+ if (ns.prefix == cname[0]) found = true;
+ }
+ if (!found) return;
+ }
+ var a = _node->set_prop (aname, avalue);
}
public GXml.Node get_attr (string name)
{
- return new GAttribute (_doc, _node->get_prop (name));
+ if (_node == null) return null;
+ var a = _node->has_prop (name);
+ if (a == null) return null;
+ Test.message ("Element Prop: "+a->name);
+ return new GAttribute (_doc, a);
}
public void normalize () {}
public string content {
diff --git a/test/SerializableGeeDualKeyMapTest.vala b/test/SerializableGeeDualKeyMapTest.vala
index a288c90..30fbd17 100644
--- a/test/SerializableGeeDualKeyMapTest.vala
+++ b/test/SerializableGeeDualKeyMapTest.vala
@@ -50,7 +50,6 @@ class SerializableGeeDualKeyMapTest : GXmlTest
{
Test.add_func ("/gxml/serializable/serializable_dual_key_map/api",
() => {
- try {
var c = new SerializableDualKeyMap<string,string,Spaces> ();
var o1 = new Spaces.full ("Floor", "Big");
var o2 = new Spaces.full ("Wall", "Small");
@@ -125,10 +124,6 @@ class SerializableGeeDualKeyMapTest : GXmlTest
stdout.printf (@"Not found 'Wall' & 'Smallest':\n");
assert_not_reached ();
}
- }
- catch (GLib.Error e) {
- stdout.printf (@"ERROR: $(e.message)");
- }
});
Test.add_func ("/gxml/serializable/serializable_dual_key_map/serialize",
() => {
diff --git a/test/SerializableGeeTreeMapTest.vala b/test/SerializableGeeTreeMapTest.vala
index 196b025..968f981 100644
--- a/test/SerializableGeeTreeMapTest.vala
+++ b/test/SerializableGeeTreeMapTest.vala
@@ -55,7 +55,6 @@ class SerializableGeeTreeMapTest : GXmlTest
{
Test.add_func ("/gxml/serializable/serializable_tree_map/api",
() => {
- try {
var c = new SerializableTreeMap<string,Space> ();
var o1 = new Space.named ("Big");
var o2 = new Space.named ("Small");
@@ -88,10 +87,6 @@ class SerializableGeeTreeMapTest : GXmlTest
stdout.printf (@"Small key value is not found\n");
assert_not_reached ();
}
- }
- catch (GLib.Error e) {
- stdout.printf (@"ERROR: $(e.message)");
- }
});
Test.add_func ("/gxml/serializable/serializable_tree_map/serialize",
() => {
@@ -103,12 +98,12 @@ class SerializableGeeTreeMapTest : GXmlTest
c.set (o2.name, o2);
var doc = new TwDocument ();
var root = doc.create_element ("root");
- doc.childs.add (root);
+ doc.children.add (root);
c.serialize (root);
- assert (root.childs.size == 2);
+ assert (root.children.size == 2);
bool found1 = false;
bool found2 = false;
- foreach (GXml.Node n in root.childs) {
+ foreach (GXml.Node n in root.children) {
if (n is Element && n.name == "space") {
var name = n.attrs.get ("name");
if (name != null) {
@@ -221,10 +216,10 @@ class SerializableGeeTreeMapTest : GXmlTest
assert_not_reached ();
}
var root = doc.root;
- assert (root.childs.size == 2);
+ assert (root.children.size == 2);
bool found1 = false;
bool found2 = false;
- foreach (GXml.Node n in root.childs) {
+ foreach (GXml.Node n in root.children) {
if (n is Element && n.name == "space") {
var name = n.attrs.get ("name");
if (name != null) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]