annotate Lib/IMPL/Object/Meta.pm @ 348:f116cd9fe7d9

working on TTView: pre-alpha version
author cin
date Thu, 03 Oct 2013 19:48:57 +0400
parents 4ddb27ff4a0b
children
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: 0
diff changeset
1 package IMPL::Object::Meta;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
2 use strict;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
3 use warnings;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
4
278
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
5 use IMPL::Const qw(:prop);
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
6 use IMPL::declare {
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
7 base => [
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
8 'IMPL::Object' => undef
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
9 ],
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
10 props => [
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
11 owner => PROP_RO
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
12 ]
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
13 };
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
14
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
15 sub meta {
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
16 my $class = shift;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
17 my $caller = caller;
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
18 my $meta = $class->surrogate();
278
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
19 $meta->owner(scalar caller);
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
20 $meta->callCTOR(@_);
278
4ddb27ff4a0b core refactoring
cin
parents: 180
diff changeset
21 $caller->SetMeta($meta);
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
22 }
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
23
63
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
24 1;
49
16ada169ca75 migrating to the Eclipse IDE
wizard@linux-odin.local
parents: 0
diff changeset
25
63
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
26 __END__
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
27
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
28 =pod
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
29
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
30 =head1 SYNOPSIS
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
31
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
32 package Foo;
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
33
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
34 meta BarAttribute('Simple bar attribute'); #mark Foo with BarAttribute
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
35
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
36 =head1 DESCRIPTION
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
37
180
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 166
diff changeset
38 Базовый класс для мета-свойств класса. Определяет оператор C< meta > для создания метаданных в вызвавшем классе.
63
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
39
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
40 =head1 MEMBERS
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
41
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
42 =over
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
43
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
44 =item C< Container >
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
45
180
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 166
diff changeset
46 Свойство заполняется до вызова конструктора и содержит имя модуля к которому применяется атрибут.
63
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
47
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
48 =back
76b878ad6596 Added serialization support for the IMPL::Object::List
wizard
parents: 49
diff changeset
49
180
d1676be8afcc Перекодировка в utf-8
sourcer
parents: 166
diff changeset
50 =cut