362
|
1 package IMPL::Web::View::Metadata::FormMeta;
|
|
2 use strict;
|
|
3
|
363
|
4 use IMPL::Const qw(:prop);
|
362
|
5 use IMPL::declare {
|
364
|
6 require => {
|
|
7 Exception => 'IMPL::Exception',
|
|
8 ArgException => '-IMPL::InvalidArgumentException'
|
|
9 },
|
362
|
10 base => [
|
364
|
11 'IMPL::Web::View::Metadata::BaseMeta' => '@_'
|
362
|
12 ],
|
|
13 props => [
|
|
14 decl => PROP_RO,
|
|
15 schema => PROP_RO,
|
|
16 nodes => PROP_RO,
|
|
17 errors => PROP_RO
|
|
18 ]
|
|
19 };
|
|
20
|
364
|
21 sub CTOR {
|
|
22 my ($this,$provider,$model,$type,$args) = @_;
|
|
23
|
|
24 if ($args) {
|
|
25 $this->$_($args->{$_}) foreach grep $args->{$_}, qw(decl schema nodes errors);
|
|
26 }
|
|
27
|
|
28 $this->$_() || die ArgException->new($_ => "The $_ is required")
|
|
29 foreach qw(decl schema);
|
|
30 }
|
|
31
|
|
32 sub GetOwnErrors {
|
|
33
|
|
34 }
|
362
|
35
|
|
36
|
|
37 1;
|
|
38
|
|
39 __END__
|
|
40
|
|
41 =pod
|
|
42
|
|
43 =head1 NAME
|
|
44
|
|
45 =head1 SYNOPSIS
|
|
46
|
|
47 =head1 DESCRIPTION
|
|
48
|
|
49 Метаданные по модели, являющейся частью формы. Элемент формы описывается
|
|
50 несколькими компонентами:
|
|
51
|
|
52 =over
|
|
53
|
|
54 =item * schema
|
|
55
|
|
56 Схема текущего элемента, СomlexType, SimpleType, ComplexNode или SimpleNode
|
|
57
|
|
58 =item * decl
|
|
59
|
|
60 Сам элемент формы, который присутствует в родительском контейнере. Объявление
|
|
61 может совпадать со схемой в случае, когда это был SimpleNode или ComplexNode,
|
|
62 иначе это Node ссылающийся на заранее обпределенный тип.
|
|
63
|
|
64 =item * nodes
|
|
65
|
|
66 Список узлов документа, которые являются экземплярами текущего элемента, в
|
|
67 случае, если этот элемен не является множественным (maxOccur=1), тогда здесь
|
|
68 должен быть только один элемент.
|
|
69
|
|
70 =item * errors
|
|
71
|
|
72 Список ошибок относящихся к данному элементу.
|
|
73
|
|
74 =back
|
|
75
|
|
76 =cut |