[gxml: 10/25] CSS : remove 'internal' functions, select nodes inside parser.



commit 5b74fd3a7c3440d7e0fcdb77f92a3a47829f1805
Author: BZHDeveloper <inizan yannick gmail com>
Date:   Fri Jan 25 13:22:55 2019 +0100

    CSS : remove 'internal' functions, select nodes inside parser.

 gxml/CssSelectorParser.vala | 10 ++++++++++
 gxml/GXmlDocument.vala      | 12 +-----------
 gxml/GXmlElement.vala       | 12 +-----------
 gxml/GomDocument.vala       | 12 +-----------
 gxml/GomElement.vala        | 12 +-----------
 gxml/meson.build            |  6 +++---
 6 files changed, 17 insertions(+), 47 deletions(-)
---
diff --git a/gxml/CssSelectorParser.vala b/gxml/CssSelectorParser.vala
index f978d5b..bb9ec84 100644
--- a/gxml/CssSelectorParser.vala
+++ b/gxml/CssSelectorParser.vala
@@ -697,4 +697,14 @@ public class GXml.CssSelectorParser : GLib.Object {
        public bool match (GXml.DomElement element) throws GLib.Error {
                return match_element (element, this.list);
        }
+       
+       public GXml.DomNodeList query_selector_all (GXml.DomElement element) throws GLib.Error {
+               var list = new GXml.GomNodeList();
+               foreach (GXml.DomElement child in element.children) {
+                       if (match (child))
+                               list.add (child);
+                       list.add_all (query_selector_all (child));
+               }
+               return list;
+       }
 }
diff --git a/gxml/GXmlDocument.vala b/gxml/GXmlDocument.vala
index 815ea17..5b8848b 100644
--- a/gxml/GXmlDocument.vala
+++ b/gxml/GXmlDocument.vala
@@ -354,16 +354,6 @@ public class GXml.GDocument : GXml.GNode,
   }
   public int child_element_count { get { return children_nodes.size; } }
 
-  static DomNodeList query_selector_all_internal (DomElement element, CssSelectorParser parser) throws 
GLib.Error {
-    var l = new GomNodeList();
-    foreach (DomElement e in element.children) {
-      if (parser.match (e))
-        l.add (e);
-      l.add_all (query_selector_all_internal (e, parser));
-    }
-    return l;
-  }
-
   public DomNodeList query_selector_all (string selectors) throws GLib.Error  {
     var cs = new CssSelectorParser ();
     cs.parse (selectors);
@@ -371,7 +361,7 @@ public class GXml.GDocument : GXml.GNode,
     foreach (DomElement e in children) {
       if (cs.match (e))
         l.add (e);
-      l.add_all (query_selector_all_internal (e, cs));
+      l.add_all (cs.query_selector_all (e));
     }
     return l;
   }
diff --git a/gxml/GXmlElement.vala b/gxml/GXmlElement.vala
index 4687fb6..6b86865 100644
--- a/gxml/GXmlElement.vala
+++ b/gxml/GXmlElement.vala
@@ -313,20 +313,10 @@ public class GXml.GElement : GXml.GNonDocumentChildNode,
   public DomElement? last_element_child { owned get { return (DomElement) children.last (); } }
   public int child_element_count { get { return children.size; } }
 
-  static DomNodeList query_selector_all_internal (DomElement element, CssSelectorParser parser) throws 
GLib.Error {
-    var l = new GomNodeList();
-    foreach (DomElement e in element.children) {
-      if (parser.match (e))
-        l.add (e);
-      l.add_all (query_selector_all_internal (e, parser));
-    }
-    return l;
-  }
-
   public DomNodeList query_selector_all (string selectors) throws GLib.Error {
     var cs = new CssSelectorParser ();
     cs.parse (selectors);
-    return query_selector_all_internal (this, cs);
+    return cs.query_selector_all (this);
   }
   // XPathContext implementation
   /**
diff --git a/gxml/GomDocument.vala b/gxml/GomDocument.vala
index 4c61ef7..2642aaf 100644
--- a/gxml/GomDocument.vala
+++ b/gxml/GomDocument.vala
@@ -352,16 +352,6 @@ public class GXml.GomDocument : GomNode,
   }
   public int child_element_count { get { return child_nodes.size; } }
 
-  static DomNodeList query_selector_all_internal (DomElement element, CssSelectorParser parser) throws 
GLib.Error {
-    var l = new GomNodeList();
-    foreach (DomElement e in element.children) {
-      if (parser.match (e))
-        l.add (e);
-      l.add_all (query_selector_all_internal (e, parser));
-    }
-    return l;
-  }
-
   public DomNodeList query_selector_all (string selectors) throws GLib.Error  {
     var cs = new CssSelectorParser ();
     cs.parse (selectors);
@@ -369,7 +359,7 @@ public class GXml.GomDocument : GomNode,
     foreach (DomElement e in children) {
       if (cs.match (e))
         l.add (e);
-      l.add_all (query_selector_all_internal (e, cs));
+      l.add_all (cs.query_selector_all (e));
     }
     return l;
   }
diff --git a/gxml/GomElement.vala b/gxml/GomElement.vala
index 99bf241..82f1ba0 100644
--- a/gxml/GomElement.vala
+++ b/gxml/GomElement.vala
@@ -256,20 +256,10 @@ public class GXml.GomElement : GomNode,
   public DomElement? last_element_child { owned get { return (DomElement) children.last (); } }
   public int child_element_count { get { return children.size; } }
 
-  static DomNodeList query_selector_all_internal (DomElement element, CssSelectorParser parser) throws 
GLib.Error {
-    var l = new GomNodeList();
-    foreach (DomElement e in element.children) {
-      if (parser.match (e))
-        l.add (e);
-      l.add_all (query_selector_all_internal (e, parser));
-    }
-    return l;
-  }
-
   public DomNodeList query_selector_all (string selectors) throws GLib.Error {
     var cs = new CssSelectorParser ();
     cs.parse (selectors);
-    return query_selector_all_internal (this, cs);
+    return cs.query_selector_all (this);
   }
   // GXml.DomElement
   /**
diff --git a/gxml/meson.build b/gxml/meson.build
index cb6c45e..a821064 100644
--- a/gxml/meson.build
+++ b/gxml/meson.build
@@ -36,12 +36,12 @@ configure_file(output : 'config.h',
 
 
 valasources = files ([
-       'Collections.vala',
-       'CssSelectorParser.vala',
        'Attribute.vala',
+       'Collections.vala',
        'CDATA.vala',
        'Character.vala',
        'Comment.vala',
+       'CssSelectorParser.vala',
        'Document.vala',
        'DocumentType.vala',
        'DomAttr.vala',
@@ -176,4 +176,4 @@ custom_target('typelib',
        depends: lib,
        install: true,
        install_dir: join_paths(get_option('libdir'), 'girepository-1.0'))
-endif
\ No newline at end of file
+endif


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