Mercurial > pub > Impl
comparison Lib/IMPL/DOM/Document.pm @ 77:9d24db321029
Refactoring Web::TT
docs
author | wizard |
---|---|
date | Fri, 02 Apr 2010 20:18:46 +0400 |
parents | 16ada169ca75 |
children | 196bf443b5e1 |
comparison
equal
deleted
inserted
replaced
76:b1652a158b2b | 77:9d24db321029 |
---|---|
34 1; | 34 1; |
35 __END__ | 35 __END__ |
36 | 36 |
37 =pod | 37 =pod |
38 | 38 |
39 =head1 NAME | |
40 | |
41 C<IMPL::DOM::Document> DOM документ. | |
42 | |
39 =head1 DESCRIPTION | 43 =head1 DESCRIPTION |
44 | |
45 Документ, позволяет создавать узлы определенных типов, что позволяет абстрагироваться | |
46 от механизмов реального создания объектов. Т.о. например C<IMPL::DOM::Navigator::Builder> | |
47 может формировать произвольные документы. | |
48 | |
49 =head1 SYNOPSIS | |
50 | |
51 =begin code | |
52 | |
53 package MyDocument; | |
54 use base qw(IMPL::DOM::Document); | |
55 | |
56 sub Create { | |
57 my $this = shift; | |
58 my ($name,$class,$hashProps) = @_; | |
59 | |
60 if ($class eq 'Info') { | |
61 return MyInfo->new($name,$hashProps->{date},$hashProps->{description}); | |
62 } else { | |
63 # leave as it is | |
64 return $this->SUPER::Create(@_); | |
65 } | |
66 } | |
67 | |
68 =end code | |
40 | 69 |
41 =head1 METHODS | 70 =head1 METHODS |
42 | 71 |
43 =over | 72 =over |
44 | 73 |
45 =item C<<$doc->Create>> | 74 =item C< Create($nodeName,$class,$hashProps) > |
46 | 75 |
47 Создает узел определеннго типа с определенным именем и свойствами. | 76 Реализация по умолчанию. Создает узел определеннго типа с определенным именем и свойствами. |
77 | |
78 =begin code | |
79 | |
80 sub Create { | |
81 my ($this,$nodeName,$class,$hashProps) = @_; | |
82 | |
83 return $class->new ( | |
84 nodeName => $nodeName, | |
85 document => $this, | |
86 %$hashProps | |
87 ); | |
88 } | |
89 | |
90 =end code | |
48 | 91 |
49 =back | 92 =back |
50 | 93 |
51 =cut | 94 =cut |