]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
libvaladoc: turn all singletons into regular classes
authorFlorian Brosch <flo.brosch@gmail.com>
Thu, 3 Feb 2011 19:08:31 +0000 (20:08 +0100)
committerFlorian Brosch <flo.brosch@gmail.com>
Thu, 3 Feb 2011 19:08:31 +0000 (20:08 +0100)
src/libvaladoc/html/basicdoclet.vala
src/libvaladoc/html/cssclassresolver.vala
src/libvaladoc/html/htmlchartfactory.vala
src/libvaladoc/html/htmlrenderer.vala
src/libvaladoc/html/linkhelper.vala

index 151980082ffbaebf6b3c42caa30f9aacde0f11ee..e32e818e736cbdcd0046abc794eba8330f2f77af 100755 (executable)
@@ -26,11 +26,11 @@ using Valadoc.Api;
 
 
 public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
+       public Html.LinkHelper linker { protected set; get; }
        public Settings settings { protected set; get; }
        protected Api.Tree tree;
        protected HtmlRenderer _renderer;
        protected Html.MarkupWriter writer;
-       protected Html.LinkHelper linker;
        protected Html.CssClassResolver cssresolver;
        protected Charts.Factory image_factory;
 
@@ -95,15 +95,15 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
        private const string css_style_content = "site_content";
        private const string css_style_body = "site_body";
 
-       construct {
-               this.cssresolver = CssClassResolver.get_instance ();
-               this.linker = LinkHelper.get_instance ();
-       }
-
        public virtual void process (Settings settings, Api.Tree tree) {
-               this.image_factory = new SimpleChartFactory (settings);
                this.settings = settings;
                this.tree = tree;
+
+               this.cssresolver = new CssClassResolver ();
+               this.linker = new LinkHelper ();
+
+               _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
+               this.image_factory = new SimpleChartFactory (settings, linker);
        }
 
 
index 35445baa00a0fceaadb020c3b5e8e986b24d19ec..e8961aeeba320d9f707eb517365a76f2d7fb9149 100755 (executable)
@@ -25,19 +25,8 @@ using Valadoc.Api;
 
 namespace Valadoc.Html {
        public class CssClassResolver : Api.Visitor {
-               private static CssClassResolver _singleton = null;
                private string? css_class = null;
 
-               private CssClassResolver () {
-               }
-
-               public static CssClassResolver get_instance () {
-                       if (_singleton == null) {
-                               _singleton = new CssClassResolver ();
-                       }
-                       return _singleton;
-               }
-
                public string resolve (Api.Node node) {
                        node.accept (this);
                        return (owned) css_class;
index 998f516c869765b5befaf4ebabee94fd7c8d6441..1b63b4e13d15f5f588c90c38a0ab5e64d3da6b05 100644 (file)
 public class Valadoc.Html.SimpleChartFactory : Charts.SimpleFactory {
        private Settings _settings;
        private Api.Node _container;
+       private LinkHelper _linker;
 
-       public SimpleChartFactory (Settings settings) {
+       public SimpleChartFactory (Settings settings, LinkHelper linker) {
                _settings = settings;
+               _linker = linker;
        }
 
        public override Gvc.Graph create_graph (Api.Node item) {
@@ -40,8 +42,7 @@ public class Valadoc.Html.SimpleChartFactory : Charts.SimpleFactory {
                base.configure_type (node, item);
 
                if (_container != null) {
-                       var linker = LinkHelper.get_instance ();
-                       var link = linker.get_relative_link (_container, item, _settings);
+                       var link = _linker.get_relative_link (_container, item, _settings);
                        if (link != null) {
                                node.safe_set ("URL", link, "");
                        }
index 8fef88ea523bb8be50009714f3ab2b7cf6bd02e1..65a9a91538ba8841f9e3a5d05d8f9bd81c3c469f 100755 (executable)
@@ -25,16 +25,16 @@ using Valadoc.Content;
 
 public class Valadoc.Html.HtmlRenderer : ContentRenderer {
 
-       protected BasicDoclet _doclet;
        protected Documentation? _container;
        protected unowned MarkupWriter writer;
        protected Html.CssClassResolver cssresolver;
        protected LinkHelper linker;
+       protected Settings settings;
 
-       public HtmlRenderer (BasicDoclet doclet) {
-               cssresolver = CssClassResolver.get_instance ();
-               linker = LinkHelper.get_instance ();
-               _doclet = doclet;
+       public HtmlRenderer (Settings settings, LinkHelper linker, CssClassResolver cssresolver) {
+               this.cssresolver = cssresolver;
+               this.settings = settings;
+               this.linker = linker;
        }
 
        public void set_container (Documentation? container) {
@@ -54,7 +54,7 @@ public class Valadoc.Html.HtmlRenderer : ContentRenderer {
        }
 
        private string get_url (Api.Node symbol) {
-               return linker.get_relative_link (_container, symbol, _doclet.settings);
+               return linker.get_relative_link (_container, symbol, settings);
        }
 
        private void write_unresolved_symbol_link (string label) {
@@ -218,7 +218,7 @@ public class Valadoc.Html.HtmlRenderer : ContentRenderer {
        public override void visit_embedded (Embedded element) {
                var caption = element.caption;
 
-               var absolute_path = Path.build_filename (_doclet.settings.path, element.package.name, "img", Path.get_basename (element.url));
+               var absolute_path = Path.build_filename (settings.path, element.package.name, "img", Path.get_basename (element.url));
                var relative_path = Path.build_filename ("img", Path.get_basename (element.url));
 
                copy_file (element.url, absolute_path);
index 704742f476264814d8790d8ee909fc2e83e50e2e..83e4747c1e360be202e397e14accabc61f46f38f 100644 (file)
@@ -25,20 +25,8 @@ using Gee;
 
 
 public class Valadoc.Html.LinkHelper : Object {
-       private static LinkHelper _singleton;
        private Settings _settings = null;
 
-       private LinkHelper () {
-       }
-
-       public static LinkHelper get_instance () {
-               if (_singleton == null) {
-                       _singleton = new LinkHelper ();
-               }
-
-               return _singleton;
-       }
-
        public string? get_package_link (Api.Package package, Settings settings) {
                if (!package.is_browsable (settings)) {
                        return null;