Mercurial > pub > Impl
view Lib/IMPL/DOM/Document.pm @ 99:6dd659f6f66c
Minor changes, DOM schema is in development (in the aspect of a forms)
author | wizard |
---|---|
date | Wed, 05 May 2010 17:33:55 +0400 (2010-05-05) |
parents | 9d24db321029 |
children | 196bf443b5e1 |
line wrap: on
line source
package IMPL::DOM::Document; use strict; use warnings; use base qw(IMPL::DOM::Node); __PACKAGE__->PassThroughArgs; sub document { return $_[0]; } sub Create { my ($this,$nodeName,$class,$refProps) = @_; $refProps ||= {}; delete $refProps->{nodeName}; return $class->new( nodeName => $nodeName, document => $this, %$refProps ); } { my $empty; sub Empty() { return $empty ? $empty : $empty = __PACKAGE__->new(nodeName => 'Empty'); } } 1; __END__ =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< Create($nodeName,$class,$hashProps) > ���������� �� ���������. ������� ���� ������������ ���� � ������������ ������ � ����������. =begin code sub Create { my ($this,$nodeName,$class,$hashProps) = @_; return $class->new ( nodeName => $nodeName, document => $this, %$hashProps ); } =end code =back =cut