diff options
author | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-26 17:33:38 +0100 |
---|---|---|
committer | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-26 17:33:38 +0100 |
commit | edbd275c4046e3e5c69a05fbca0e5df11f9bf34a (patch) | |
tree | d0597cb38c82f62e95e1fe2d763329da658437bf /lib/Tree/Template/Declare/DAG_Node.pm | |
parent | non-working first attempt (diff) | |
download | Tree-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.pm | 40 |
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; |