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)
Комментариев нет:
Отправить комментарий