summaryrefslogtreecommitdiff
path: root/lib/Tree/Template/Declare/DAG_Node.pm
diff options
context:
space:
mode:
authorGianni Ceccarelli <dakkar@dechirico.(none)>2009-03-26 17:33:38 +0100
committerGianni Ceccarelli <dakkar@dechirico.(none)>2009-03-26 17:33:38 +0100
commitedbd275c4046e3e5c69a05fbca0e5df11f9bf34a (patch)
treed0597cb38c82f62e95e1fe2d763329da658437bf /lib/Tree/Template/Declare/DAG_Node.pm
parentnon-working first attempt (diff)
downloadTree-Template-Declare-edbd275c4046e3e5c69a05fbca0e5df11f9bf34a.tar.gz
Tree-Template-Declare-edbd275c4046e3e5c69a05fbca0e5df11f9bf34a.tar.bz2
Tree-Template-Declare-edbd275c4046e3e5c69a05fbca0e5df11f9bf34a.zip
custom builder works, it's just ugly
Diffstat (limited to 'lib/Tree/Template/Declare/DAG_Node.pm')
-rw-r--r--lib/Tree/Template/Declare/DAG_Node.pm40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/Tree/Template/Declare/DAG_Node.pm b/lib/Tree/Template/Declare/DAG_Node.pm
new file mode 100644
index 0000000..c005752
--- /dev/null
+++ b/lib/Tree/Template/Declare/DAG_Node.pm
@@ -0,0 +1,40 @@
+package Tree::Template::Declare::DAG_Node;
+use strict;
+use warnings;
+use Carp;
+
+sub new {
+ my ($class,$node_class)=@_;
+ $node_class||='Tree::DAG_Node';
+
+ eval "require $node_class";
+ croak "Can't load $node_class: $@" if $@;
+
+ return bless {nc=>$node_class},$class;
+}
+
+sub new_node {
+ my ($self)=@_;
+
+ return $self->{nc}->new();
+}
+
+sub add_child_node {
+ my ($self,$parent,$child)=@_;
+
+ return $parent->add_daughter($child);
+}
+
+sub set_node_name {
+ my ($self,$node,$name)=@_;
+
+ return $node->name($name);
+}
+
+sub set_node_attributes {
+ my ($self,$node,$attrs)=@_;
+
+ return $node->attributes($attrs);
+}
+
+1;