Mercurial > pub > Impl
comparison Lib/IMPL/DOM/Document.pm @ 194:4d0e1962161c
Replaced tabs with spaces
IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
author | cin |
---|---|
date | Tue, 10 Apr 2012 20:08:29 +0400 |
parents | d1676be8afcc |
children | c6d0f889ef87 |
comparison
equal
deleted
inserted
replaced
193:8e8401c0aea4 | 194:4d0e1962161c |
---|---|
12 | 12 |
13 sub Create { | 13 sub Create { |
14 my ($this,$nodeName,$class,$refProps) = @_; | 14 my ($this,$nodeName,$class,$refProps) = @_; |
15 | 15 |
16 if ( ref $class eq 'HASH' ) { | 16 if ( ref $class eq 'HASH' ) { |
17 $refProps = $class; | 17 $refProps = $class; |
18 $class = undef; | 18 $class = undef; |
19 } | 19 } |
20 | 20 |
21 $class ||= typeof IMPL::DOM::Node; | 21 $class ||= typeof IMPL::DOM::Node; |
22 $refProps ||= {}; | 22 $refProps ||= {}; |
23 | 23 |
30 %$refProps | 30 %$refProps |
31 ); | 31 ); |
32 } | 32 } |
33 | 33 |
34 sub save { | 34 sub save { |
35 my ($this,$writer) = @_; | 35 my ($this,$writer) = @_; |
36 | 36 |
37 $writer->xmlDecl(undef,'yes'); | 37 $writer->xmlDecl(undef,'yes'); |
38 $this->SUPER::save($writer); | 38 $this->SUPER::save($writer); |
39 $writer->end(); | 39 $writer->end(); |
40 } | 40 } |
41 | 41 |
42 { | 42 { |
43 my $empty; | 43 my $empty; |
44 sub Empty() { | 44 sub Empty() { |
67 | 67 |
68 package MyDocument; | 68 package MyDocument; |
69 use parent qw(IMPL::DOM::Document); | 69 use parent qw(IMPL::DOM::Document); |
70 | 70 |
71 sub Create { | 71 sub Create { |
72 my $this = shift; | 72 my $this = shift; |
73 my ($name,$class,$hashProps) = @_; | 73 my ($name,$class,$hashProps) = @_; |
74 | 74 |
75 if ($class eq 'Info') { | 75 if ($class eq 'Info') { |
76 return MyInfo->new($name,$hashProps->{date},$hashProps->{description}); | 76 return MyInfo->new($name,$hashProps->{date},$hashProps->{description}); |
77 } else { | 77 } else { |
78 # leave as it is | 78 # leave as it is |
79 return $this->SUPER::Create(@_); | 79 return $this->SUPER::Create(@_); |
80 } | 80 } |
81 } | 81 } |
82 | 82 |
83 =end code | 83 =end code |
84 | 84 |
85 =head1 METHODS | 85 =head1 METHODS |
91 Реализация по умолчанию. Создает узел определеннго типа с определенным именем и свойствами. | 91 Реализация по умолчанию. Создает узел определеннго типа с определенным именем и свойствами. |
92 | 92 |
93 =begin code | 93 =begin code |
94 | 94 |
95 sub Create { | 95 sub Create { |
96 my ($this,$nodeName,$class,$hashProps) = @_; | 96 my ($this,$nodeName,$class,$hashProps) = @_; |
97 | 97 |
98 return $class->new ( | 98 return $class->new ( |
99 nodeName => $nodeName, | 99 nodeName => $nodeName, |
100 document => $this, | 100 document => $this, |
101 %$hashProps | 101 %$hashProps |
102 ); | 102 ); |
103 } | 103 } |
104 | 104 |
105 =end code | 105 =end code |
106 | 106 |
107 =item C< save($writer) > | 107 =item C< save($writer) > |