[gxml] Added GXml.Node.parent



commit 44a82e7db07f7eb42ed9915c3395ea2ed384cb21
Author: Daniel Espinosa <esodan gmail com>
Date:   Thu Feb 18 18:19:13 2016 -0600

    Added GXml.Node.parent

 gxml/GXmlNode.vala    |    1 +
 gxml/Node.vala        |    4 ++++
 gxml/TwNode.vala      |    1 +
 gxml/libxml-Node.vala |    1 +
 4 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/gxml/GXmlNode.vala b/gxml/GXmlNode.vala
index 3a2fdec..16db24b 100644
--- a/gxml/GXmlNode.vala
+++ b/gxml/GXmlNode.vala
@@ -42,6 +42,7 @@ public abstract class GXml.GNode : Object, GXml.Node
   public virtual Gee.BidirList<GXml.Node> children { owned get { return new GListChildren (_doc, _node); } }
   public virtual Gee.List<GXml.Namespace> namespaces { owned get { return new GListNamespaces (_doc, _node); 
} }
   public virtual GXml.Document document { get { return _doc; } }
+  public virtual GXml.Node parent { owned get { return to_gnode (document as GDocument, _node->parent); } }
   public virtual GXml.NodeType type_node {
     get {
       if (_node == null) return GXml.NodeType.X_UNKNOWN;
diff --git a/gxml/Node.vala b/gxml/Node.vala
index f9eb2ee..50fd78f 100644
--- a/gxml/Node.vala
+++ b/gxml/Node.vala
@@ -67,6 +67,10 @@ public interface GXml.Node : Object
    */
   public abstract GXml.Document document { get; }
   /**
+   * Node's XML document holding this node.
+   */
+  public abstract GXml.Node parent { owned get; }
+  /**
    * Get first child with given name, or null. 
    */
   public new virtual GXml.Node? get (string key) {
diff --git a/gxml/TwNode.vala b/gxml/TwNode.vala
index dd5c17c..c37b85f 100644
--- a/gxml/TwNode.vala
+++ b/gxml/TwNode.vala
@@ -58,4 +58,5 @@ public abstract class GXml.TwNode : Object, GXml.Node
   public virtual Gee.List<GXml.Namespace> namespaces { owned get { return new Gee.ArrayList<GXml.Node> (); } 
}
   public virtual GXml.NodeType type_node { get { return GXml.NodeType.DOCUMENT; } }
   public virtual string value { owned get { return _value.dup (); } set  { _value = value; } }
+  public virtual GXml.Node parent { owned get { return null; } }
 }
diff --git a/gxml/libxml-Node.vala b/gxml/libxml-Node.vala
index 406be6e..0c1c471 100644
--- a/gxml/libxml-Node.vala
+++ b/gxml/libxml-Node.vala
@@ -509,5 +509,6 @@ namespace GXml {
                public GXml.NodeType type_node { get { return node_type; } }
                public virtual string to_string () { return stringify (); }
                public GXml.Document document { get { return this.owner_document; } }
+               public virtual GXml.Node parent { owned get { return parent_node.ref () as GXml.Node; } }
        }
 }


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