finish
- Return type: CNM_CollectionInterfaces.IApplier
Parameters
none
Code
Declaration
METHOD finish : CNM_CollectionInterfaces.IApplier
VAR
object :CNM_AbstractObject.IObject;
chainedApplier :POINTER TO ChainedApplier;
applier1 :CNM_CollectionInterfaces.IApplier;
applier2 :CNM_CollectionInterfaces.IApplier;
applierNext :CNM_CollectionInterfaces.IApplier;
END_VAR
Implementation
IF(THIS^.applierList.size = 1)THEN
__QUERYINTERFACE(THIS^.applierList.dequeue(), finish);
THIS^.applierList.clear();
ELSE
object := THIS^.applierList.dequeue();
__QUERYINTERFACE(object, applier1);
object := THIS^.applierList.dequeue();
__QUERYINTERFACE(object, applier2);
chainedApplier := __NEW(ChainedApplier(firstApplier := applier1, secondApplier := applier2));
WHILE(THIS^.applierList.size > 0)DO
object := THIS^.applierList.dequeue();
__QUERYINTERFACE(object, applierNext);
chainedApplier^.andThen(applierNext);
END_WHILE
finish := chainedApplier^;
END_IF