[valadoc] Api: Introduce Visitor and refactor Valadoc.Doclet
- From: Florian Brosch <flobrosch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [valadoc] Api: Introduce Visitor and refactor Valadoc.Doclet
- Date: Sat, 17 Oct 2009 00:16:57 +0000 (UTC)
commit 2887e595606e3c62b77cebf9c10ec51cd113214f
Author: Didier 'Ptitjes <ptitjes free fr>
Date: Fri Oct 16 21:44:14 2009 +0200
Api: Introduce Visitor and refactor Valadoc.Doclet
src/doclets/devhelp/doclet/doclet.vala | 16 ++--
src/doclets/htm/doclet/doclet.vala | 16 ++--
src/doclets/htmlhelpers/doclet/doclet.vala | 10 ++-
src/libvaladoc/Makefile.am | 1 +
src/libvaladoc/api/class.vala | 8 +--
src/libvaladoc/api/classhandler.vala | 4 +-
src/libvaladoc/api/constant.vala | 8 +--
src/libvaladoc/api/constanthandler.vala | 4 +-
src/libvaladoc/api/constructionmethodhandler.vala | 4 +-
src/libvaladoc/api/delegate.vala | 8 +--
src/libvaladoc/api/delegatehandler.vala | 6 +-
src/libvaladoc/api/enum.vala | 12 +--
src/libvaladoc/api/enumhandler.vala | 4 +-
src/libvaladoc/api/enumvalue.vala | 8 +--
src/libvaladoc/api/errorcode.vala | 8 +--
src/libvaladoc/api/errordomain.vala | 12 +--
src/libvaladoc/api/errordomainhandler.vala | 4 +-
src/libvaladoc/api/field.vala | 8 +--
src/libvaladoc/api/fieldhandler.vala | 4 +-
src/libvaladoc/api/formalparameter.vala | 3 +-
src/libvaladoc/api/interface.vala | 8 +--
src/libvaladoc/api/interfacehandler.vala | 4 +-
src/libvaladoc/api/method.vala | 8 +--
src/libvaladoc/api/methodhandler.vala | 6 +-
src/libvaladoc/api/namespace.vala | 8 +--
src/libvaladoc/api/namespacehandler.vala | 6 +-
src/libvaladoc/api/node.vala | 10 ++--
src/libvaladoc/api/package.vala | 8 +--
src/libvaladoc/api/property.vala | 8 +--
src/libvaladoc/api/propertyaccessor.vala | 2 +-
src/libvaladoc/api/propertyhandler.vala | 6 +-
src/libvaladoc/api/signal.vala | 8 +--
src/libvaladoc/api/signalhandler.vala | 5 +-
src/libvaladoc/api/struct.vala | 8 +--
src/libvaladoc/api/structhandler.vala | 5 +-
src/libvaladoc/api/tree.vala | 4 +-
src/libvaladoc/api/typeparameter.vala | 3 +-
src/libvaladoc/api/visitor.vala | 81 +++++++++++++++++++++
src/libvaladoc/doclet.vala | 22 +-----
src/valadoc/valadoc.vala | 2 +-
40 files changed, 180 insertions(+), 180 deletions(-)
---
diff --git a/src/doclets/devhelp/doclet/doclet.vala b/src/doclets/devhelp/doclet/doclet.vala
index bb198ed..4d02cf6 100755
--- a/src/doclets/devhelp/doclet/doclet.vala
+++ b/src/doclets/devhelp/doclet/doclet.vala
@@ -211,7 +211,7 @@ public class Valadoc.Devhelp.Doclet : Valadoc.Html.BasicDoclet {
return GLib.Path.build_filename ( this.settings.path, this.package_dir_name, element.full_name () + ".html" );
}
- public override void initialisation ( Settings settings, Api.Tree tree ) {
+ public override void process (Settings settings, Api.Tree tree) {
this.settings = settings;
this.tree = tree;
@@ -223,7 +223,7 @@ public class Valadoc.Devhelp.Doclet : Valadoc.Html.BasicDoclet {
Gee.Collection<Package> packages = tree.get_package_list ();
foreach ( Package pkg in packages ) {
- pkg.visit ( this );
+ pkg.accept (this);
}
}
@@ -419,7 +419,7 @@ public class Valadoc.Devhelp.Doclet : Valadoc.Html.BasicDoclet {
file = null;
}
- public override void visit_constant ( Constant constant, ConstantHandler parent ) {
+ public override void visit_constant (Constant constant) {
string rpath = this.get_real_path ( constant );
string path = this.get_path ( constant );
@@ -428,12 +428,12 @@ public class Valadoc.Devhelp.Doclet : Valadoc.Html.BasicDoclet {
GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
this.write_file_header ( file, this.css_path, constant.full_name() );
- this.write_constant_content ( file, constant, parent );
+ this.write_constant_content (file, constant);
this.write_file_footer ( file );
file = null;
}
- public override void visit_field ( Field field, FieldHandler parent ) {
+ public override void visit_field (Field field) {
string rpath = this.get_real_path ( field );
string path = this.get_path ( field );
@@ -442,7 +442,7 @@ public class Valadoc.Devhelp.Doclet : Valadoc.Html.BasicDoclet {
GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
this.write_file_header ( file, this.css_path, field.full_name() );
- this.write_field_content ( file, field, parent );
+ this.write_field_content (file, field);
this.write_file_footer ( file );
file = null;
}
@@ -481,7 +481,7 @@ public class Valadoc.Devhelp.Doclet : Valadoc.Html.BasicDoclet {
file = null;
}
- public override void visit_method ( Method m, Api.MethodHandler parent ) {
+ public override void visit_method (Method m) {
string rpath = this.get_real_path ( m );
string path = this.get_path ( m );
@@ -490,7 +490,7 @@ public class Valadoc.Devhelp.Doclet : Valadoc.Html.BasicDoclet {
GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
this.write_file_header ( file, this.css_path, m.full_name() );
- this.write_method_content ( file, m, parent );
+ this.write_method_content (file, m);
this.write_file_footer ( file );
file = null;
}
diff --git a/src/doclets/htm/doclet/doclet.vala b/src/doclets/htm/doclet/doclet.vala
index 5ddcb66..e446218 100755
--- a/src/doclets/htm/doclet/doclet.vala
+++ b/src/doclets/htm/doclet/doclet.vala
@@ -108,7 +108,7 @@ public class Valadoc.HtmlDoclet : Valadoc.Html.BasicDoclet {
return GLib.Path.build_filename ( this.settings.path, element.package.name, element.full_name () + ".html" );
}
- public override void initialisation ( Settings settings, Api.Tree tree ) {
+ public override void process (Settings settings, Api.Tree tree) {
this.settings = settings;
DirUtils.create ( this.settings.path, 0777 );
@@ -125,7 +125,7 @@ public class Valadoc.HtmlDoclet : Valadoc.Html.BasicDoclet {
Gee.Collection<Package> packages = tree.get_package_list ();
foreach ( Package pkg in packages ) {
- pkg.visit ( this );
+ pkg.accept (this);
}
}
@@ -268,24 +268,24 @@ public class Valadoc.HtmlDoclet : Valadoc.Html.BasicDoclet {
file = null;
}
- public override void visit_constant ( Constant constant, ConstantHandler parent ) {
+ public override void visit_constant (Constant constant) {
string rpath = this.get_real_path ( constant );
GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
this.write_file_header ( file, this.css_path, constant.full_name() );
this.write_navi_constant ( file, constant );
- this.write_constant_content ( file, constant, parent );
+ this.write_constant_content (file, constant);
this.write_file_footer ( file );
file = null;
}
- public override void visit_field ( Field field, FieldHandler parent ) {
+ public override void visit_field (Field field) {
string rpath = this.get_real_path ( field );
GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
this.write_file_header ( file, this.css_path, field.full_name() );
this.write_navi_field ( file, field );
- this.write_field_content ( file, field, parent );
+ this.write_field_content (file, field);
this.write_file_footer ( file );
file = null;
}
@@ -318,13 +318,13 @@ public class Valadoc.HtmlDoclet : Valadoc.Html.BasicDoclet {
file = null;
}
- public override void visit_method ( Method m, Api.MethodHandler parent ) {
+ public override void visit_method (Method m) {
string rpath = this.get_real_path ( m );
GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
this.write_file_header ( file, this.css_path, m.full_name() );
this.write_navi_method ( file, m );
- this.write_method_content ( file, m, parent );
+ this.write_method_content (file, m);
this.write_file_footer ( file );
file = null;
}
diff --git a/src/doclets/htmlhelpers/doclet/doclet.vala b/src/doclets/htmlhelpers/doclet/doclet.vala
index c66ab4f..98da9d9 100755
--- a/src/doclets/htmlhelpers/doclet/doclet.vala
+++ b/src/doclets/htmlhelpers/doclet/doclet.vala
@@ -21,7 +21,7 @@ using GLib;
using Valadoc.Content;
using Valadoc.Api;
-public abstract class Valadoc.Html.BasicDoclet : Valadoc.Doclet {
+public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
protected Settings settings;
protected HtmlRenderer _renderer;
@@ -29,6 +29,8 @@ public abstract class Valadoc.Html.BasicDoclet : Valadoc.Doclet {
_renderer = new HtmlRenderer (this);
}
+ public abstract void process (Settings settings, Api.Tree tree);
+
protected string? get_link ( Api.Node element, Api.Node? pos ) {
return get_html_link ( this.settings, element, pos );
}
@@ -759,7 +761,7 @@ public abstract class Valadoc.Html.BasicDoclet : Valadoc.Doclet {
file.puts ( "\t\t\t</div>\n" );
}
- public void write_method_content ( GLib.FileStream file, Method m , Api.MethodHandler parent ) {
+ public void write_method_content (GLib.FileStream file, Method m) {
string full_name = m.full_name ( );
file.printf ( "\t\t\t<div class=\"%s\">\n", css_style_content );
file.printf ( "\t\t\t\t<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
@@ -839,7 +841,7 @@ public abstract class Valadoc.Html.BasicDoclet : Valadoc.Doclet {
file.puts ( "\t\t\t</div>\n" );
}
- public void write_field_content ( GLib.FileStream file, Field field, FieldHandler parent ) {
+ public void write_field_content (GLib.FileStream file, Field field) {
string full_name = field.full_name ( );
file.printf ( "\t\t\t<div class=\"%s\">\n", css_style_content );
file.printf ( "\t\t\t\t<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
@@ -862,7 +864,7 @@ public abstract class Valadoc.Html.BasicDoclet : Valadoc.Doclet {
file.puts ( "\t\t\t</div>\n" );
}
- public void write_constant_content ( GLib.FileStream file, Constant constant, ConstantHandler parent ) {
+ public void write_constant_content (GLib.FileStream file, Constant constant) {
string full_name = constant.full_name ( );
file.printf ( "\t\t\t<div class=\"%s\">\n", css_style_content );
file.printf ( "\t\t\t\t<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
diff --git a/src/libvaladoc/Makefile.am b/src/libvaladoc/Makefile.am
index 5ace867..ed4534f 100644
--- a/src/libvaladoc/Makefile.am
+++ b/src/libvaladoc/Makefile.am
@@ -81,6 +81,7 @@ libvaladoc_la_VALASOURCES = \
api/typereference.vala \
api/typesymbol.vala \
api/visitable.vala \
+ api/visitor.vala \
content/block.vala \
content/blockcontent.vala \
content/comment.vala \
diff --git a/src/libvaladoc/api/class.vala b/src/libvaladoc/api/class.vala
index ad08764..9d5bd75 100644
--- a/src/libvaladoc/api/class.vala
+++ b/src/libvaladoc/api/class.vala
@@ -60,14 +60,10 @@ public class Valadoc.Api.Class : TypeSymbol, ClassHandler, StructHandler, Signal
}
}
- public void visit ( Doclet doclet ) {
- doclet.visit_class ( this );
- }
-
public override NodeType node_type { get { return NodeType.CLASS; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_class (this);
}
private void set_parent_type_references (Tree root, Vala.Collection<Vala.DataType> lst) {
diff --git a/src/libvaladoc/api/classhandler.vala b/src/libvaladoc/api/classhandler.vala
index 065d112..4a61b66 100644
--- a/src/libvaladoc/api/classhandler.vala
+++ b/src/libvaladoc/api/classhandler.vala
@@ -39,8 +39,8 @@ public interface Valadoc.Api.ClassHandler : Node {
return get_children_by_type (NodeType.CLASS);
}
- public void visit_classes (Doclet doclet) {
- accept_children_by_type (NodeType.CLASS, doclet);
+ public void visit_classes (Visitor visitor) {
+ accept_children_by_type (NodeType.CLASS, visitor);
}
}
diff --git a/src/libvaladoc/api/constant.vala b/src/libvaladoc/api/constant.vala
index 916d6b8..dd48b35 100644
--- a/src/libvaladoc/api/constant.vala
+++ b/src/libvaladoc/api/constant.vala
@@ -57,13 +57,9 @@ public class Valadoc.Api.Constant : Member, ReturnTypeHandler {
.get ();
}
- public void visit (Doclet doclet, ConstantHandler? parent) {
- doclet.visit_constant (this, parent);
- }
-
public override NodeType node_type { get { return NodeType.CONSTANT; } }
- public override void accept (Doclet doclet) {
- visit (doclet, (ConstantHandler)parent);
+ public override void accept (Visitor visitor) {
+ visitor.visit_constant (this);
}
}
diff --git a/src/libvaladoc/api/constanthandler.vala b/src/libvaladoc/api/constanthandler.vala
index ab44e89..a3975c3 100644
--- a/src/libvaladoc/api/constanthandler.vala
+++ b/src/libvaladoc/api/constanthandler.vala
@@ -25,7 +25,7 @@ public interface Valadoc.Api.ConstantHandler : Node {
return get_children_by_type (NodeType.CONSTANT);
}
- public void visit_constants (Doclet doclet) {
- accept_children_by_type (NodeType.CONSTANT, doclet);
+ public void visit_constants (Visitor visitor) {
+ accept_children_by_type (NodeType.CONSTANT, visitor);
}
}
diff --git a/src/libvaladoc/api/constructionmethodhandler.vala b/src/libvaladoc/api/constructionmethodhandler.vala
index 46d96ea..63f3f94 100644
--- a/src/libvaladoc/api/constructionmethodhandler.vala
+++ b/src/libvaladoc/api/constructionmethodhandler.vala
@@ -25,8 +25,8 @@ public interface Valadoc.Api.ConstructionMethodHandler : Node {
return get_children_by_type (NodeType.CREATION_METHOD);
}
- public void visit_construction_methods ( Doclet doclet ) {
- accept_children_by_type (NodeType.CREATION_METHOD, doclet);
+ public void visit_construction_methods (Visitor visitor) {
+ accept_children_by_type (NodeType.CREATION_METHOD, visitor);
}
}
diff --git a/src/libvaladoc/api/delegate.vala b/src/libvaladoc/api/delegate.vala
index 5991362..36debeb 100644
--- a/src/libvaladoc/api/delegate.vala
+++ b/src/libvaladoc/api/delegate.vala
@@ -41,14 +41,10 @@ public class Valadoc.Api.Delegate : TypeSymbol, ParameterListHandler, ReturnType
get;
}
- public void visit (Doclet doclet) {
- doclet.visit_delegate (this);
- }
-
public override NodeType node_type { get { return NodeType.DELEGATE; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_delegate (this);
}
public bool is_static {
diff --git a/src/libvaladoc/api/delegatehandler.vala b/src/libvaladoc/api/delegatehandler.vala
index f93c377..70201f5 100644
--- a/src/libvaladoc/api/delegatehandler.vala
+++ b/src/libvaladoc/api/delegatehandler.vala
@@ -19,14 +19,12 @@
using Gee;
-
public interface Valadoc.Api.DelegateHandler : Node {
public Gee.Collection<Delegate> get_delegate_list () {
return get_children_by_type (NodeType.DELEGATE);
}
- public void visit_delegates (Doclet doclet) {
- accept_children_by_type (NodeType.DELEGATE, doclet);
+ public void visit_delegates (Visitor visitor) {
+ accept_children_by_type (NodeType.DELEGATE, visitor);
}
}
-
diff --git a/src/libvaladoc/api/enum.vala b/src/libvaladoc/api/enum.vala
index 2fe59c9..4beade8 100644
--- a/src/libvaladoc/api/enum.vala
+++ b/src/libvaladoc/api/enum.vala
@@ -35,18 +35,14 @@ public class Valadoc.Api.Enum : TypeSymbol, MethodHandler {
return get_children_by_type (NodeType.ENUM_VALUE);
}
- public void visit_enum_values (Doclet doclet) {
- accept_children_by_type (NodeType.ENUM_VALUE, doclet);
- }
-
- public void visit (Doclet doclet) {
- doclet.visit_enum (this);
+ public void visit_enum_values (Visitor visitor) {
+ accept_children_by_type (NodeType.ENUM_VALUE, visitor);
}
public override NodeType node_type { get { return NodeType.ENUM; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_enum (this);
}
private Vala.Enum venum;
diff --git a/src/libvaladoc/api/enumhandler.vala b/src/libvaladoc/api/enumhandler.vala
index a62a4aa..f6e8080 100644
--- a/src/libvaladoc/api/enumhandler.vala
+++ b/src/libvaladoc/api/enumhandler.vala
@@ -25,8 +25,8 @@ public interface Valadoc.Api.EnumHandler : Node {
return get_children_by_type (NodeType.ENUM);
}
- public void visit_enums (Doclet doclet) {
- accept_children_by_type (NodeType.ENUM, doclet);
+ public void visit_enums (Visitor visitor) {
+ accept_children_by_type (NodeType.ENUM, visitor);
}
}
diff --git a/src/libvaladoc/api/enumvalue.vala b/src/libvaladoc/api/enumvalue.vala
index 94c005d..ba4c807 100644
--- a/src/libvaladoc/api/enumvalue.vala
+++ b/src/libvaladoc/api/enumvalue.vala
@@ -45,14 +45,10 @@ public class Valadoc.Api.EnumValue: Symbol {
return this.venval == venval;
}
- public void visit (Doclet doclet) {
- doclet.visit_enum_value (this);
- }
-
public override NodeType node_type { get { return NodeType.ENUM_VALUE; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_enum_value (this);
}
protected override Inline build_signature () {
diff --git a/src/libvaladoc/api/errorcode.vala b/src/libvaladoc/api/errorcode.vala
index bf0f592..e113d0a 100644
--- a/src/libvaladoc/api/errorcode.vala
+++ b/src/libvaladoc/api/errorcode.vala
@@ -36,14 +36,10 @@ public class Valadoc.Api.ErrorCode : TypeSymbol {
return this.verrcode == verrcode;
}
- public void visit (Doclet doclet) {
- doclet.visit_error_code (this);
- }
-
public override NodeType node_type { get { return NodeType.ERROR_CODE; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_error_code (this);
}
protected override Inline build_signature () {
diff --git a/src/libvaladoc/api/errordomain.vala b/src/libvaladoc/api/errordomain.vala
index 28c3265..3019bd1 100644
--- a/src/libvaladoc/api/errordomain.vala
+++ b/src/libvaladoc/api/errordomain.vala
@@ -33,22 +33,18 @@ public class Valadoc.Api.ErrorDomain : TypeSymbol, MethodHandler {
return this.verrdom.get_cname();
}
- public void visit_error_codes (Doclet doclet) {
- accept_children_by_type (NodeType.ERROR_CODE, doclet);
+ public void visit_error_codes (Visitor visitor) {
+ accept_children_by_type (NodeType.ERROR_CODE, visitor);
}
public Collection<ErrorCode> get_error_code_list () {
return get_children_by_type (NodeType.ERROR_CODE);
}
- public void visit (Doclet doclet) {
- doclet.visit_error_domain (this);
- }
-
public override NodeType node_type { get { return NodeType.ERROR_DOMAIN; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_error_domain (this);
}
protected override Inline build_signature () {
diff --git a/src/libvaladoc/api/errordomainhandler.vala b/src/libvaladoc/api/errordomainhandler.vala
index d1cff91..a42b538 100644
--- a/src/libvaladoc/api/errordomainhandler.vala
+++ b/src/libvaladoc/api/errordomainhandler.vala
@@ -25,7 +25,7 @@ public interface Valadoc.Api.ErrorDomainHandler : Node {
return get_children_by_type (NodeType.ERROR_DOMAIN);
}
- public void visit_error_domains (Doclet doclet) {
- accept_children_by_type (NodeType.ERROR_DOMAIN, doclet);
+ public void visit_error_domains (Visitor visitor) {
+ accept_children_by_type (NodeType.ERROR_DOMAIN, visitor);
}
}
diff --git a/src/libvaladoc/api/field.vala b/src/libvaladoc/api/field.vala
index 20707b4..a3272a3 100644
--- a/src/libvaladoc/api/field.vala
+++ b/src/libvaladoc/api/field.vala
@@ -78,13 +78,9 @@ public class Valadoc.Api.Field : Member, ReturnTypeHandler {
return signature.get ();
}
- public void visit (Doclet doclet, FieldHandler? parent) {
- doclet.visit_field (this, parent);
- }
-
public override NodeType node_type { get { return NodeType.FIELD; } }
- public override void accept (Doclet doclet) {
- visit (doclet, (FieldHandler) parent);
+ public override void accept (Visitor visitor) {
+ visitor.visit_field (this);
}
}
diff --git a/src/libvaladoc/api/fieldhandler.vala b/src/libvaladoc/api/fieldhandler.vala
index c599566..4f54010 100644
--- a/src/libvaladoc/api/fieldhandler.vala
+++ b/src/libvaladoc/api/fieldhandler.vala
@@ -25,7 +25,7 @@ public interface Valadoc.Api.FieldHandler : Node {
return get_children_by_type (NodeType.FIELD);
}
- public void visit_fields (Doclet doclet) {
- accept_children_by_type (NodeType.FIELD, doclet);
+ public void visit_fields (Visitor visitor) {
+ accept_children_by_type (NodeType.FIELD, visitor);
}
}
diff --git a/src/libvaladoc/api/formalparameter.vala b/src/libvaladoc/api/formalparameter.vala
index c7ca7ff..478fc7c 100644
--- a/src/libvaladoc/api/formalparameter.vala
+++ b/src/libvaladoc/api/formalparameter.vala
@@ -62,7 +62,8 @@ public class Valadoc.Api.FormalParameter : Symbol, ReturnTypeHandler {
public override NodeType node_type { get { return NodeType.FORMAL_PARAMETER; } }
- public override void accept (Doclet doclet) {
+ public override void accept (Visitor visitor) {
+ visitor.visit_formal_parameter (this);
}
protected override void resolve_type_references (Tree root) {
diff --git a/src/libvaladoc/api/interface.vala b/src/libvaladoc/api/interface.vala
index c4c44c5..17030f0 100644
--- a/src/libvaladoc/api/interface.vala
+++ b/src/libvaladoc/api/interface.vala
@@ -43,14 +43,10 @@ public class Valadoc.Api.Interface : TypeSymbol, SignalHandler, PropertyHandler,
private Vala.Interface vinterface;
- public void visit (Doclet doclet) {
- doclet.visit_interface (this);
- }
-
public override NodeType node_type { get { return NodeType.INTERFACE; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_interface (this);
}
private void set_prerequisites (Tree root, Vala.Collection<Vala.DataType> lst) {
diff --git a/src/libvaladoc/api/interfacehandler.vala b/src/libvaladoc/api/interfacehandler.vala
index 695e782..a4c323a 100644
--- a/src/libvaladoc/api/interfacehandler.vala
+++ b/src/libvaladoc/api/interfacehandler.vala
@@ -25,7 +25,7 @@ public interface Valadoc.Api.InterfaceHandler : Node {
return get_children_by_type (NodeType.INTERFACE);
}
- public void visit_interfaces (Doclet doclet) {
- accept_children_by_type (NodeType.INTERFACE, doclet);
+ public void visit_interfaces (Visitor visitor) {
+ accept_children_by_type (NodeType.INTERFACE, visitor);
}
}
diff --git a/src/libvaladoc/api/method.vala b/src/libvaladoc/api/method.vala
index 7329c4b..377c89d 100644
--- a/src/libvaladoc/api/method.vala
+++ b/src/libvaladoc/api/method.vala
@@ -193,17 +193,13 @@ public class Valadoc.Api.Method : Member, ParameterListHandler, ExceptionHandler
return signature.get ();
}
- public void visit (Doclet doclet, Valadoc.Api.MethodHandler in_type) {
- doclet.visit_method (this, in_type);
- }
-
public override NodeType node_type {
get {
return is_constructor ? NodeType.CREATION_METHOD : NodeType.METHOD;
}
}
- public override void accept (Doclet doclet) {
- visit (doclet, (MethodHandler) parent);
+ public override void accept (Visitor visitor) {
+ visitor.visit_method (this);
}
}
diff --git a/src/libvaladoc/api/methodhandler.vala b/src/libvaladoc/api/methodhandler.vala
index b7b23d9..a5899ee 100644
--- a/src/libvaladoc/api/methodhandler.vala
+++ b/src/libvaladoc/api/methodhandler.vala
@@ -19,14 +19,12 @@
using Gee;
-
public interface Valadoc.Api.MethodHandler : Node {
- public void visit_methods (Doclet doclet) {
- accept_children_by_type (NodeType.METHOD, doclet);
+ public void visit_methods (Visitor visitor) {
+ accept_children_by_type (NodeType.METHOD, visitor);
}
public Collection<Method> get_method_list () {
return get_children_by_type (NodeType.METHOD);
}
}
-
diff --git a/src/libvaladoc/api/namespace.vala b/src/libvaladoc/api/namespace.vala
index eb23187..1253e10 100644
--- a/src/libvaladoc/api/namespace.vala
+++ b/src/libvaladoc/api/namespace.vala
@@ -57,14 +57,10 @@ public class Valadoc.Api.Namespace : Symbol, MethodHandler, FieldHandler, Namesp
.get ();
}
- public void visit (Doclet doclet) {
- doclet.visit_namespace (this);
- }
-
public override NodeType node_type { get { return NodeType.NAMESPACE; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_namespace (this);
}
public Vala.Namespace vnspace {
diff --git a/src/libvaladoc/api/namespacehandler.vala b/src/libvaladoc/api/namespacehandler.vala
index 34796ab..f21bd3e 100644
--- a/src/libvaladoc/api/namespacehandler.vala
+++ b/src/libvaladoc/api/namespacehandler.vala
@@ -19,14 +19,13 @@
using Gee;
-
public interface Valadoc.Api.NamespaceHandler : Node {
public Collection<Namespace> get_namespace_list (bool filtered = true) {
return get_children_by_type (NodeType.NAMESPACE, filtered);
}
- public void visit_namespaces (Doclet doclet) {
- accept_children_by_type (NodeType.NAMESPACE, doclet);
+ public void visit_namespaces (Visitor visitor) {
+ accept_children_by_type (NodeType.NAMESPACE, visitor);
}
private ArrayList<Vala.Namespace> create_parent_vnamespace_list (Vala.Symbol vsymbol) {
@@ -117,4 +116,3 @@ public interface Valadoc.Api.NamespaceHandler : Node {
return this.find_vnamespace_helper (vnspaces, vnspaces.index_of (vns));
}
}
-
diff --git a/src/libvaladoc/api/node.vala b/src/libvaladoc/api/node.vala
index 4b37283..9b458a6 100644
--- a/src/libvaladoc/api/node.vala
+++ b/src/libvaladoc/api/node.vala
@@ -64,7 +64,7 @@ public abstract class Valadoc.Api.Node : Item, Visitable, Documentation {
per_type_children = new HashMap<NodeType?, Gee.List<Node>> (int_hash, int_equal);
}
- public abstract void accept (Doclet doclet);
+ public abstract void accept (Visitor visitor);
public abstract bool is_visitor_accessible (Settings settings);
@@ -122,20 +122,20 @@ public abstract class Valadoc.Api.Node : Item, Visitable, Documentation {
return children.read_only_view;
}
- public void accept_children_by_type (NodeType type, Doclet doclet) {
+ public void accept_children_by_type (NodeType type, Visitor visitor) {
Gee.List<Node> all_children = per_type_children.get (type);
if (all_children != null) {
foreach (Node node in all_children) {
if (node.do_document) {
- node.accept (doclet);
+ node.accept (visitor);
}
}
}
}
- public void accept_children (NodeType[] types, Doclet doclet) {
+ public void accept_children (NodeType[] types, Visitor visitor) {
foreach (NodeType type in types) {
- accept_children_by_type (type, doclet);
+ accept_children_by_type (type, visitor);
}
}
diff --git a/src/libvaladoc/api/package.vala b/src/libvaladoc/api/package.vala
index 5b2ba70..583031d 100644
--- a/src/libvaladoc/api/package.vala
+++ b/src/libvaladoc/api/package.vala
@@ -99,14 +99,10 @@ public class Valadoc.Api.Package : Node, NamespaceHandler {
return !( this.is_package && settings.with_deps == false );
}
- public void visit ( Doclet doclet ) {
- doclet.visit_package ( this );
- }
-
public override NodeType node_type { get { return NodeType.PACKAGE; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_package (this);
}
protected override Inline build_signature () {
diff --git a/src/libvaladoc/api/property.vala b/src/libvaladoc/api/property.vala
index ba95a5b..f42a8fe 100644
--- a/src/libvaladoc/api/property.vala
+++ b/src/libvaladoc/api/property.vala
@@ -135,13 +135,9 @@ public class Valadoc.Api.Property : Member, ReturnTypeHandler {
return signature.get ();
}
- public void visit (Doclet doclet) {
- doclet.visit_property (this);
- }
-
public override NodeType node_type { get { return NodeType.PROPERTY; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_property (this);
}
}
diff --git a/src/libvaladoc/api/propertyaccessor.vala b/src/libvaladoc/api/propertyaccessor.vala
index 2151ac6..dd164c7 100644
--- a/src/libvaladoc/api/propertyaccessor.vala
+++ b/src/libvaladoc/api/propertyaccessor.vala
@@ -30,7 +30,7 @@ public class Valadoc.Api.PropertyAccessor : Symbol {
public override NodeType node_type { get { return NodeType.PROPERTY_ACCESSOR; } }
- public override void accept (Doclet doclet) {
+ public override void accept (Visitor visitor) {
}
public bool is_construct {
diff --git a/src/libvaladoc/api/propertyhandler.vala b/src/libvaladoc/api/propertyhandler.vala
index e81d88c..f4445ca 100644
--- a/src/libvaladoc/api/propertyhandler.vala
+++ b/src/libvaladoc/api/propertyhandler.vala
@@ -19,7 +19,6 @@
using Gee;
-
public interface Valadoc.Api.PropertyHandler : Node {
protected bool is_overwritten_property (Property prop) {
foreach (Property p in get_property_list ()) {
@@ -40,8 +39,7 @@ public interface Valadoc.Api.PropertyHandler : Node {
return get_children_by_type (NodeType.PROPERTY);
}
- public void visit_properties (Doclet doclet) {
- accept_children_by_type (NodeType.PROPERTY, doclet);
+ public void visit_properties (Visitor visitor) {
+ accept_children_by_type (NodeType.PROPERTY, visitor);
}
}
-
diff --git a/src/libvaladoc/api/signal.vala b/src/libvaladoc/api/signal.vala
index dde91c5..7fdf206 100644
--- a/src/libvaladoc/api/signal.vala
+++ b/src/libvaladoc/api/signal.vala
@@ -79,13 +79,9 @@ public class Valadoc.Api.Signal : Member, ParameterListHandler, ReturnTypeHandle
return signature.get ();
}
- public void visit (Doclet doclet) {
- doclet.visit_signal (this);
- }
-
public override NodeType node_type { get { return NodeType.SIGNAL; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_signal (this);
}
}
diff --git a/src/libvaladoc/api/signalhandler.vala b/src/libvaladoc/api/signalhandler.vala
index 013519f..3110913 100644
--- a/src/libvaladoc/api/signalhandler.vala
+++ b/src/libvaladoc/api/signalhandler.vala
@@ -19,10 +19,9 @@
using Gee;
-
public interface Valadoc.Api.SignalHandler : Node {
- public void visit_signals (Doclet doclet) {
- accept_children_by_type (NodeType.SIGNAL, doclet);
+ public void visit_signals (Visitor visitor) {
+ accept_children_by_type (NodeType.SIGNAL, visitor);
}
public Collection<Signal> get_signal_list () {
diff --git a/src/libvaladoc/api/struct.vala b/src/libvaladoc/api/struct.vala
index 7c15cdf..21d74dd 100644
--- a/src/libvaladoc/api/struct.vala
+++ b/src/libvaladoc/api/struct.vala
@@ -37,14 +37,10 @@ public class Valadoc.Api.Struct : TypeSymbol, MethodHandler, ConstructionMethodH
return this.vstruct.get_cname();
}
- public void visit ( Doclet doclet ) {
- doclet.visit_struct (this);
- }
-
public override NodeType node_type { get { return NodeType.STRUCT; } }
- public override void accept (Doclet doclet) {
- visit (doclet);
+ public override void accept (Visitor visitor) {
+ visitor.visit_struct (this);
}
private void set_parent_references (Tree root) {
diff --git a/src/libvaladoc/api/structhandler.vala b/src/libvaladoc/api/structhandler.vala
index 13e7d51..0a2c922 100644
--- a/src/libvaladoc/api/structhandler.vala
+++ b/src/libvaladoc/api/structhandler.vala
@@ -19,13 +19,12 @@
using Gee;
-
public interface Valadoc.Api.StructHandler : Node {
public Collection<Struct> get_struct_list () {
return get_children_by_type (NodeType.STRUCT);
}
- public void visit_structs (Doclet doclet) {
- accept_children_by_type (NodeType.STRUCT, doclet);
+ public void visit_structs (Visitor visitor) {
+ accept_children_by_type (NodeType.STRUCT, visitor);
}
}
diff --git a/src/libvaladoc/api/tree.vala b/src/libvaladoc/api/tree.vala
index 8a2977f..41b954e 100644
--- a/src/libvaladoc/api/tree.vala
+++ b/src/libvaladoc/api/tree.vala
@@ -52,8 +52,8 @@ public class Valadoc.Api.Tree {
}
}
- public void visit (Doclet doclet) {
- doclet.initialisation (this.settings, this);
+ public void accept (Visitor visitor) {
+ visitor.visit_tree (this);
}
private Node? search_relative_to (Node element, string[] path) {
diff --git a/src/libvaladoc/api/typeparameter.vala b/src/libvaladoc/api/typeparameter.vala
index d74806c..450b1e0 100644
--- a/src/libvaladoc/api/typeparameter.vala
+++ b/src/libvaladoc/api/typeparameter.vala
@@ -39,6 +39,7 @@ public class Valadoc.Api.TypeParameter : Symbol, ReturnTypeHandler {
public override NodeType node_type { get { return NodeType.TYPE_PARAMETER; } }
- public override void accept (Doclet doclet) {
+ public override void accept (Visitor visitor) {
+ visitor.visit_type_parameter (this);
}
}
diff --git a/src/libvaladoc/api/visitor.vala b/src/libvaladoc/api/visitor.vala
new file mode 100755
index 0000000..65085f7
--- /dev/null
+++ b/src/libvaladoc/api/visitor.vala
@@ -0,0 +1,81 @@
+/* visitor.vala
+ *
+ * Valadoc.Api.- a documentation tool for vala.
+ * Copyright (C) 2008-2009 Florian Brosch, Didier Villevalois
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Didier 'Ptitjes Villevalois <ptitjes free fr>
+ */
+
+public abstract class Valadoc.Api.Visitor : GLib.Object {
+ public virtual void visit_tree (Tree item) {
+ }
+
+ public virtual void visit_package (Package item) {
+ }
+
+ public virtual void visit_namespace (Namespace item) {
+ }
+
+ public virtual void visit_interface (Interface item) {
+ }
+
+ public virtual void visit_class (Class item) {
+ }
+
+ public virtual void visit_struct (Struct item) {
+ }
+
+ public virtual void visit_property (Property item) {
+ }
+
+ public virtual void visit_field (Field item) {
+ }
+
+ public virtual void visit_constant (Constant item) {
+ }
+
+ public virtual void visit_delegate (Delegate item) {
+ }
+
+ public virtual void visit_signal (Signal item) {
+ }
+
+ public virtual void visit_creation_method (Method item) {
+ }
+
+ public virtual void visit_method (Method item) {
+ }
+
+ public virtual void visit_type_parameter (TypeParameter item) {
+ }
+
+ public virtual void visit_formal_parameter (FormalParameter item) {
+ }
+
+ public virtual void visit_error_domain (ErrorDomain item) {
+ }
+
+ public virtual void visit_error_code (ErrorCode item) {
+ }
+
+ public virtual void visit_enum (Enum item) {
+ }
+
+ public virtual void visit_enum_value (EnumValue item) {
+ }
+}
diff --git a/src/libvaladoc/doclet.vala b/src/libvaladoc/doclet.vala
index c207c58..517aeae 100755
--- a/src/libvaladoc/doclet.vala
+++ b/src/libvaladoc/doclet.vala
@@ -18,25 +18,9 @@
*/
using Gee;
-using Valadoc.Api;
-public static delegate Type Valadoc.DocletRegisterFunction ();
+public static delegate Type Valadoc.DocletRegisterFunction ( );
-public abstract class Valadoc.Doclet : GLib.Object {
- public abstract void initialisation (Settings settings, Api.Tree tree);
- public abstract void visit_package (Api.Package pkg);
- public abstract void visit_namespace (Api.Namespace ns);
- public abstract void visit_interface (Api.Interface iface);
- public abstract void visit_class (Api.Class cl);
- public abstract void visit_struct (Api.Struct stru);
- public abstract void visit_error_domain (Api.ErrorDomain errdom);
- public abstract void visit_enum (Api.Enum en);
- public abstract void visit_property (Api.Property prop);
- public abstract void visit_field (Api.Field field, Api.FieldHandler parent);
- public abstract void visit_constant (Api.Constant constant, Api.ConstantHandler parent);
- public abstract void visit_error_code (Api.ErrorCode errcode);
- public abstract void visit_enum_value (Api.EnumValue enval);
- public abstract void visit_delegate (Api.Delegate del);
- public abstract void visit_signal (Api.Signal sig);
- public abstract void visit_method (Api.Method m, Api.MethodHandler parent);
+public interface Valadoc.Doclet : GLib.Object {
+ public abstract void process (Settings settings, Api.Tree tree);
}
diff --git a/src/valadoc/valadoc.vala b/src/valadoc/valadoc.vala
index c9c17e3..0cd6055 100755
--- a/src/valadoc/valadoc.vala
+++ b/src/valadoc/valadoc.vala
@@ -203,7 +203,7 @@ public class ValaDoc : Object {
if (reporter.errors > 0)
return quit (reporter);
- doctree.visit (modules.doclet);
+ modules.doclet.process (settings, doctree);
return quit (reporter);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]