Mercurial > pub > Impl
diff Lib/IMPL/Class/Meta.pm @ 180:d1676be8afcc
Перекодировка в utf-8
author | sourcer |
---|---|
date | Fri, 30 Dec 2011 23:40:00 +0300 |
parents | aaab45153411 |
children | 4d0e1962161c |
line wrap: on
line diff
--- a/Lib/IMPL/Class/Meta.pm Tue Dec 20 23:00:30 2011 +0300 +++ b/Lib/IMPL/Class/Meta.pm Fri Dec 30 23:40:00 2011 +0300 @@ -10,8 +10,8 @@ my ($class,$meta_data) = @_; $class = ref $class if ref $class; - # , - # IMPL::Object::Accessor, + # тут нельзя использовать стандартное исключение, поскольку для него используется + # класс IMPL::Object::Accessor, который наследуется от текущего класса die "The meta_data parameter should be an object" if not ref $meta_data; push @{$class_meta{$class}{ref $meta_data}},$meta_data; @@ -99,7 +99,7 @@ =head1 NAME -C<IMPL::Class::Meta> - . +C<IMPL::Class::Meta> - информация хранимая на уровне класса. =head1 SYNOPSIS @@ -145,10 +145,10 @@ =head1 DESCRIPTION - () , , - (), . +Позвоялет расширять информацию о типах (класса) при помощи метаданных, метаданными являются любые объекты, +притом выборка метаданных приоизводится по их типу (классу), что позволяет выбрать все однотипные метаданные. - +Существует возможность выборки метаданных с учетом унаследованных от базовых классов =head1 MEMBERS @@ -156,25 +156,25 @@ =item C<set_meta($meta_data)> - C<$meta_data> . +Добавляет метаданные C<$meta_data> к классу. =item C<get_meta($meta_class,$predicate,$deep)> - C<$meta_class> , - . +Выбирает метаданные типа C<$meta_class> и его наследников, с возможностью фильтрации и получения +метаданных базовых классов. =over =item C<$meta_class> - +Тип метаданных =item C<$predicate> -, - . - , C<true> - , C<false> - - . C<$_> . +Подпрограмма, которая будет вызываться для каждых найденных метаданных и на основе результата +ее выполнения метаданные будут включены в результат или нет. Получеат в качестве параметра +объект с метаданными, возвращает C<true> - включить метаданные в результа, C<false> - пропустить +метаданные как не подходящие. Также переменная C<$_> ссылается на текущий объект с метаданными. =begin code @@ -197,20 +197,20 @@ =item C<$deep> - . +Осуществлять поиск по базовым классам. =back =item C<class_data($name,$new_value)> - , C<class_data> , - C<$name>. +В отличии от метаданных, C<class_data> не накапливает информацию, +а хранит только один экземпляр для одного ключа C<$name>. - , , - , -, - . -, - . +Если новое значение не задано, то осуществляется выборка сохраненного, +если текущий класс не имеет сохраненного значения, то оно ищется в базовых +классах, затем копия найденного значения сохраняется в текущем классе и +возвращается наружу. Это позволяет базовым классам задавать значение по-умолчанию, +которые могут быть изменены или заменены субклассами. =begin code @@ -240,11 +240,11 @@ =item C<static_accessor($name[,$value])> - C<$name> C<$value>. +Создает статическое свойство с именем C<$name> и начальным значением C<$value>. - C<class_data>, -, C<class_data> , , - , . +Использование данного свойство аналогично использованию C<class_data>, за исключением +того, что C<class_data> гарантирует, что наследник обладает собственной копией данных, +изменение которых не коснется ни базового класса, ни соседей. =begin code