elem_iterator InterfaceOwnOperations Self .Operations .filter> ( .IsStaticMethod ! ) .joinWithLambded> ( Self .InterfaceForClassImplements ) .ElementToArray: .CastMethod >>> Result ; // InterfaceOwnOperations elem_iterator InterfaceOperationsTotal Cached: ( Self .InterfaceOwnOperations .joinWithLambded> ( Self .Implements .filter> .IsPureMixIn ) ( IN anItem anItem call.me .joinWithLambded> ( anItem .Inherits .filter> .IsPureMixIn ) .InterfaceOwnOperations ) ) >>> Result ; // InterfaceOperationsTotal ModelElement elem_func MainImplements Cached: ( Self .Implements .FirstElement ) >>> Result ; // MainImplements BOOLEAN elem_func ImplementsIterator Cached: ( RULES ( Self .MainImplements IsNil ) false ( Self .MainImplements .IsIterator ) true DEFAULT false ; // RULES ) >>> Result ; // ImplementsIterator BOOLEAN elem_func IsMethodAndImplementsIterator RULES ( Self .IsMethod ! ) false ( Self .ImplementsIterator ) true DEFAULT false ; // RULES >>> Result ; // IsMethodAndImplementsIterator BOOLEAN elem_func SomeMethodImplementsThisIterator ModelElement IN anIterator RULES ( Self .Operations .filter> .IsMethodAndImplementsIterator .map> .MainImplements .filter> ( anIterator .IsSameModelElement ) .CountIt > 0 ) true DEFAULT false ; // RULES >>> Result ; // SomeMethodImplementsThisIterator elem_iterator InterfaceOperationsTotalDeep Self .InterfaceOperationsTotal .joinWithLambded> ( Self .Inherits .filter> .IsClassImplementable ) call.me >>> Result ; // InterfaceOperationsTotalDeep elem_iterator ImplementedEx Cached: ( Self .Implemented if ( Self .IsClassOrMixIn ) then begin VAR l_OutedIterators [] >>> l_OutedIterators .joinWithLambded> ( Self .ClassImplements ) ( .InterfaceOperationsTotalDeep .filter> ( .IsFacetIterator ! ) .filter> ( .IsIterator ) .filter> ( Self SWAP .SomeMethodImplementsThisIterator ! ) .filter> ( IN anItem if ( anItem l_OutedIterators array:Has ! ) then begin anItem array:AddTo l_OutedIterators true end else false ) .filter> ( IN anItem Self .MainAncestor call.me .filter> ( anItem .IsSameModelElement ) .CountIt 0 == ) .map> ( Self IsVoid ?FAIL 'Self IsVoid' Self SWAP .ImplementMethod ) array:Copy ) end // ( Self .IsClassOrMixIn ) ) >>> Result ; // ImplementedEx
Заметки о тестировании, программировании и прочий "поток сознания", который жалко писать "в стол"
среда, 6 апреля 2016 г.
#1213. Скрипты. Правила. Итераторы. Фильтрация
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий