comparison Lib/Schema/Form/Item.pm @ 0:03e58a454b20

Создан репозитарий
author Sergey
date Tue, 14 Jul 2009 12:54:37 +0400
parents
children 16ada169ca75
comparison
equal deleted inserted replaced
-1:000000000000 0:03e58a454b20
1 package Schema::Form::Item;
2 use strict;
3 use Common;
4 our @ISA = qw(Object);
5
6 BEGIN {
7 DeclareProperty Name => ACCESS_READ;
8 DeclareProperty isMulti => ACCESS_READ;
9 DeclareProperty Filters => ACCESS_READ;
10 DeclareProperty Attributes => ACCESS_READ;
11 }
12
13 sub CTOR {
14 my ($this,$name,$multi,$filters,$attributes) = @_;
15
16 $this->{$Name} = $name or die new Exception("A name is required for the item");
17 $this->{$isMulti} = defined $multi ? $multi : 0;
18 $this->{$Filters} = $filters || [];
19 $this->{$Attributes} = $attributes || {};
20 }
21
22 sub AddFilter {
23 my ($this,$filter) = @_;
24
25 push @{$this->{$Filters}}, $filter;
26 }
27
28 sub isMandatory {
29 my ($this) = @_;
30
31 return ( grep $_->Name eq 'mandatory', $this->Filters ) ? 1 : 0 ;
32 }
33
34 sub GetFirstFilter {
35 my ($this,$filterName) = @_;
36
37 my ($filter) = grep $_->Name eq $filterName, $this->Filters;
38 return $filter;
39 }
40
41 1;