annotate Lib/IMPL/Class/PropertyInfo.pm @ 245:7c517134c42f

Added Unsupported media type Web exception corrected resourceLocation setting in the resource Implemented localizable resources for text messages fixed TT view scopings, INIT block in controls now sets globals correctly.
author sergey
date Mon, 29 Oct 2012 03:15:22 +0400
parents 6d8092d8ce1b
children 8d36073411b1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
1 package IMPL::Class::PropertyInfo;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
2 use strict;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
3
228
431db7034a88 Для синхронизации
andrei <andrei@nap21.upri>
parents: 209
diff changeset
4 use parent qw(IMPL::Class::MemberInfo);
431db7034a88 Для синхронизации
andrei <andrei@nap21.upri>
parents: 209
diff changeset
5
431db7034a88 Для синхронизации
andrei <andrei@nap21.upri>
parents: 209
diff changeset
6 our %CTOR = ( 'IMPL::Class::MemberInfo' => '@_' );
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
7
60
b0c068da93ac Lazy activation for the configuration objects (final concept)
wizard
parents: 49
diff changeset
8 __PACKAGE__->mk_accessors(qw(Type Mutators canGet canSet ownerSet));
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
9
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
10 my %LoadedModules;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
11
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
12 sub CTOR {
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
13 my $this = shift;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
14
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
15 if ( my $type = $this->Attributes ? delete $this->Attributes->{type} : undef ) {
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
16 $this->Type($type);
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
17 }
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
18
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
19 $this->Mutators(0) unless defined $this->Mutators;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
20 }
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
21
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
22 sub Implementor {
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
23 my $this = shift;
134
44977efed303 Significant performance optimizations
wizard
parents: 60
diff changeset
24
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
25 if (@_) {
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
26 $this->SUPER::Implementor(@_);
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
27 } else {
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
28 my $implementor = $this->SUPER::Implementor;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
29 return $implementor if $implementor;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
30
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
31 $implementor = $this->SelectImplementor();
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
32
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
33 $this->Implementor($implementor);
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
34 }
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
35
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
36 }
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
37
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
38 sub SelectImplementor {
134
44977efed303 Significant performance optimizations
wizard
parents: 60
diff changeset
39 eval {$_[0]->Class->_PropertyImplementor} or die new IMPL::Exception('Can\'t find a property implementor for the specified class',$_[0]->Class);
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
40 }
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
41
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 27
diff changeset
42 1;
180
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 165
diff changeset
43
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 165
diff changeset
44 __END__
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 165
diff changeset
45
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 165
diff changeset
46 =pod
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 165
diff changeset
47
209
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
48 =head1 NAME
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
49
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
50 C<IMPL::Class::PropertyInfo> - метаданные о свойствах объектов. Используются для отражения и
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
51 проверки данных объектов.
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
52
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
53 =head1 DESCRIPTION
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
54
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
55 В зависимости от типа каждый объект предоставляет способ хранения данных, например хеши позволяют
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
56 хранить состояние в виде ассоциативного массива и т.д. Информация о свойстве предоставляет определенный
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
57 уровень абстракции.
a8db61d0ed33 IMPL::Class::Meta refactoring
cin
parents: 180
diff changeset
58
180
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 165
diff changeset
59 =cut