diff 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
line wrap: on
line diff
--- a/Lib/IMPL/DOM/Document.pm	Wed Mar 31 16:17:13 2010 +0400
+++ b/Lib/IMPL/DOM/Document.pm	Fri Apr 02 20:18:46 2010 +0400
@@ -36,15 +36,58 @@
 
 =pod
 
+=head1 NAME
+
+C<IMPL::DOM::Document> DOM документ.
+
 =head1 DESCRIPTION
 
+Документ, позволяет создавать узлы определенных типов, что позволяет абстрагироваться
+от механизмов реального создания объектов. Т.о. например C<IMPL::DOM::Navigator::Builder>
+может формировать произвольные документы.
+
+=head1 SYNOPSIS
+
+=begin code
+
+package MyDocument;
+use base qw(IMPL::DOM::Document);
+
+sub Create {
+	my $this = shift;
+	my ($name,$class,$hashProps) = @_;
+	
+	if ($class eq 'Info') {
+		return MyInfo->new($name,$hashProps->{date},$hashProps->{description});
+	} else {
+		# leave as it is
+		return $this->SUPER::Create(@_);
+	}
+}
+
+=end code
+
 =head1 METHODS
 
 =over
 
-=item C<<$doc->Create>>
+=item C< Create($nodeName,$class,$hashProps) >
+
+Реализация по умолчанию. Создает узел определеннго типа с определенным именем и свойствами.
+
+=begin code
 
-Создает узел определеннго типа с определенным именем и свойствами.
+sub Create {
+	my ($this,$nodeName,$class,$hashProps) = @_;
+	
+	return $class->new (
+		nodeName => $nodeName,
+		document => $this,
+		%$hashProps
+	);
+}
+
+=end code
 
 =back