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;