Mercurial > pub > Impl
diff Lib/Schema/Form/Item.pm @ 0:03e58a454b20
Создан репозитарий
author | Sergey |
---|---|
date | Tue, 14 Jul 2009 12:54:37 +0400 |
parents | |
children | 16ada169ca75 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/Schema/Form/Item.pm Tue Jul 14 12:54:37 2009 +0400 @@ -0,0 +1,41 @@ +package Schema::Form::Item; +use strict; +use Common; +our @ISA = qw(Object); + +BEGIN { + DeclareProperty Name => ACCESS_READ; + DeclareProperty isMulti => ACCESS_READ; + DeclareProperty Filters => ACCESS_READ; + DeclareProperty Attributes => ACCESS_READ; +} + +sub CTOR { + my ($this,$name,$multi,$filters,$attributes) = @_; + + $this->{$Name} = $name or die new Exception("A name is required for the item"); + $this->{$isMulti} = defined $multi ? $multi : 0; + $this->{$Filters} = $filters || []; + $this->{$Attributes} = $attributes || {}; +} + +sub AddFilter { + my ($this,$filter) = @_; + + push @{$this->{$Filters}}, $filter; +} + +sub isMandatory { + my ($this) = @_; + + return ( grep $_->Name eq 'mandatory', $this->Filters ) ? 1 : 0 ; +} + +sub GetFirstFilter { + my ($this,$filterName) = @_; + + my ($filter) = grep $_->Name eq $filterName, $this->Filters; + return $filter; +} + +1;