I need to get the index of an iterator. For instance I have a CallOperationAction which refers to a Class' Operation and takes a set of object as parameters. I need to check whether the passed objects are in number and types compatible with the related operation signature. To this end I am iterating on the Operation parameters as an ordered set and, inside the iterator, I'd like to check if the current parameter (in the right order) has the same type with the i-th object of the call operation action. I therefore need to get the iterator index/counter. Is there any way to do that?
The direct/horrible way is to keep computing the index using
orderedCollection->indexOf(anElement).
The idiomatic way is to iterate over the indexes;
Sequence{1..coll1->size()}->forAll(i: Integer |
let a : A = coll1->at(i), b : B = coll2->at(i) in ... )
I think I raised an issue suggesting a forAllWith iteration that gave
you an extra argument.
Regards
Ed Willink
On 11/11/2012 10:13, Andrea Sindico wrote:
> I need to get the index of an iterator. For instance I have a
> CallOperationAction which refers to a Class' Operation and takes a set
> of object as parameters. I need to check whether the passed objects
> are in number and types compatible with the related operation
> signature. To this end I am iterating on the Operation parameters as
> an ordered set and, inside the iterator, I'd like to check if the
> current parameter (in the right order) has the same type with the i-th
> object of the call operation action. I therefore need to get the
> iterator index/counter. Is there any way to do that?
>
> Regards