Mercurial > pub > Impl
view Lib/Schema/Form/Item.pm @ 16:75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
author | Sergey |
---|---|
date | Tue, 08 Sep 2009 17:29:07 +0400 |
parents | 03e58a454b20 |
children | 16ada169ca75 |
line wrap: on
line source
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;