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 |
