OAW xpt and counters [message #383897] |
Mon, 23 June 2008 12:44  |
Eclipse User |
|
|
|
Hello ... I am porting a code generator to OAW from XSLT ...
Is there a way i can store the number of times something meeting some
foreach condition ?
I kinda wanna do something like this below half baked pseudo code:
int count = 0;
«FOREACH //get some list ...
//satisfy some condition
count +=1;
«ENDFOREACH»
Reason being ... is that i need to create an array of objects:
objects * myarray = new objects()[/*num of special objects in model*/]
Cheers,
Jim
|
|
|
|
|
|
Re: OAW xpt and counters [message #384380 is a reply to message #383903] |
Tue, 29 July 2008 02:12  |
Eclipse User |
|
|
|
Hi Jim,
just as an addition:
the FOREACH statement also supports some kind of iterator:
<<FOREACH foo AS bar ITERATOR i>>
<<i.counter0>>
<<i.counter1>>
<<ENDFOREACH>>
where (i.counter0+1)==i.counter1
hope that helps,
Sven
Jim schrieb:
> Thanks ... but not quite i "fixed" it to do what i was looking for by
> doing the below ... i am sure its a sin of some kind ... but it really
> shorted my code down ....
>
> Cheers,
> Jim
>
> «CreateCounter("ProcEntry_ContainerCounter")»
> «FOREACH ... AS a»
> «CounterIncrement("ProcEntry_ContainerCounter")»
> «ENDFOREACH»
>
> «IF IsCounterGreaterThan("ProcEntry_ContainerCounter","0")== "true" »
> ...
> ...
>
> Karsten Thoms wrote:
>> Jim,
>>
>> I suppose you are searching for the select function. Either you only
>> iterate over the list of elements meeting that condition or you do
>> your initialization seperately.
>>
>> int count=0;
>> «FOREACH getSomeListOfElements.select(e|condition-with-e)»
>> count +=1;
>> «ENDFOREACH»
>>
>> objects * myarray = new
>> objects()[«getSomeListOfElements.select(e|condition-with-e) .size»]
>>
>> ~Karsten
>>
>> Jim schrieb:
>>> Hello ... I am porting a code generator to OAW from XSLT ...
>>>
>>> Is there a way i can store the number of times something meeting some
>>> foreach condition ?
>>>
>>> I kinda wanna do something like this below half baked pseudo code:
>>>
>>> int count = 0;
>>> «FOREACH //get some list ...
>>> //satisfy some condition
>>> count +=1;
>>> «ENDFOREACH»
>>>
>>>
>>> Reason being ... is that i need to create an array of objects:
>>>
>>> objects * myarray = new objects()[/*num of special objects in model*/]
>>>
>>> Cheers,
>>>
>>> Jim
|
|
|
Re: OAW xpt and counters [message #618085 is a reply to message #383897] |
Tue, 24 June 2008 05:45  |
Eclipse User |
|
|
|
Jim,
I suppose you are searching for the select function. Either you only
iterate over the list of elements meeting that condition or you do your
initialization seperately.
int count=0;
«FOREACH getSomeListOfElements.select(e|condition-with-e)»
count +=1;
«ENDFOREACH»
objects * myarray = new
objects()[«getSomeListOfElements.select(e|condition-with-e) .size»]
~Karsten
Jim schrieb:
> Hello ... I am porting a code generator to OAW from XSLT ...
>
> Is there a way i can store the number of times something meeting some
> foreach condition ?
>
> I kinda wanna do something like this below half baked pseudo code:
>
> int count = 0;
> «FOREACH //get some list ...
> //satisfy some condition
> count +=1;
> «ENDFOREACH»
>
>
> Reason being ... is that i need to create an array of objects:
>
> objects * myarray = new objects()[/*num of special objects in model*/]
>
> Cheers,
>
> Jim
|
|
|
Re: OAW xpt and counters [message #618095 is a reply to message #383898] |
Wed, 25 June 2008 10:24  |
Eclipse User |
|
|
|
Thanks ... but not quite i "fixed" it to do what i was looking for by
doing the below ... i am sure its a sin of some kind ... but it really
shorted my code down ....
Cheers,
Jim
«CreateCounter("ProcEntry_ContainerCounter")»
«FOREACH ... AS a»
«CounterIncrement("ProcEntry_ContainerCounter")»
«ENDFOREACH»
«IF IsCounterGreaterThan("ProcEntry_ContainerCounter","0")== "true" »
....
....
Karsten Thoms wrote:
> Jim,
>
> I suppose you are searching for the select function. Either you only
> iterate over the list of elements meeting that condition or you do your
> initialization seperately.
>
> int count=0;
> «FOREACH getSomeListOfElements.select(e|condition-with-e)»
> count +=1;
> «ENDFOREACH»
>
> objects * myarray = new
> objects()[«getSomeListOfElements.select(e|condition-with-e) .size»]
>
> ~Karsten
>
> Jim schrieb:
>> Hello ... I am porting a code generator to OAW from XSLT ...
>>
>> Is there a way i can store the number of times something meeting some
>> foreach condition ?
>>
>> I kinda wanna do something like this below half baked pseudo code:
>>
>> int count = 0;
>> «FOREACH //get some list ...
>> //satisfy some condition
>> count +=1;
>> «ENDFOREACH»
>>
>>
>> Reason being ... is that i need to create an array of objects:
>>
>> objects * myarray = new objects()[/*num of special objects in model*/]
>>
>> Cheers,
>>
>> Jim
|
|
|
Re: OAW xpt and counters [message #618108 is a reply to message #383903] |
Tue, 01 July 2008 03:46  |
Eclipse User |
|
|
|
Are you aware of the counter extensions in oAW's stdlib feature? There
are already means to create, increment and query counters.
«EXTENSION org::openarchitectureware::util::stdlib::counter»
«FOREACH ... AS a»
«counterInc("ProcEntry_ContainerCounter")»
«ENDFOREACH»
«IF counterGet("ProcEntry_ContainerCounter")>0»
Looks smarter I think.
~Karsten
Jim schrieb:
> Thanks ... but not quite i "fixed" it to do what i was looking for by
> doing the below ... i am sure its a sin of some kind ... but it really
> shorted my code down ....
>
> Cheers,
> Jim
>
> «CreateCounter("ProcEntry_ContainerCounter")»
> «FOREACH ... AS a»
> «CounterIncrement("ProcEntry_ContainerCounter")»
> «ENDFOREACH»
>
> «IF IsCounterGreaterThan("ProcEntry_ContainerCounter","0")== "true" »
> ....
> ....
>
> Karsten Thoms wrote:
>> Jim,
>>
>> I suppose you are searching for the select function. Either you only
>> iterate over the list of elements meeting that condition or you do
>> your initialization seperately.
>>
>> int count=0;
>> «FOREACH getSomeListOfElements.select(e|condition-with-e)»
>> count +=1;
>> «ENDFOREACH»
>>
>> objects * myarray = new
>> objects()[«getSomeListOfElements.select(e|condition-with-e) .size»]
>>
>> ~Karsten
>>
>> Jim schrieb:
>>> Hello ... I am porting a code generator to OAW from XSLT ...
>>>
>>> Is there a way i can store the number of times something meeting some
>>> foreach condition ?
>>>
>>> I kinda wanna do something like this below half baked pseudo code:
>>>
>>> int count = 0;
>>> «FOREACH //get some list ...
>>> //satisfy some condition
>>> count +=1;
>>> «ENDFOREACH»
>>>
>>>
>>> Reason being ... is that i need to create an array of objects:
>>>
>>> objects * myarray = new objects()[/*num of special objects in model*/]
>>>
>>> Cheers,
>>>
>>> Jim
|
|
|
Re: OAW xpt and counters [message #618620 is a reply to message #383903] |
Tue, 29 July 2008 02:12  |
Eclipse User |
|
|
|
Hi Jim,
just as an addition:
the FOREACH statement also supports some kind of iterator:
<<FOREACH foo AS bar ITERATOR i>>
<<i.counter0>>
<<i.counter1>>
<<ENDFOREACH>>
where (i.counter0+1)==i.counter1
hope that helps,
Sven
Jim schrieb:
> Thanks ... but not quite i "fixed" it to do what i was looking for by
> doing the below ... i am sure its a sin of some kind ... but it really
> shorted my code down ....
>
> Cheers,
> Jim
>
> «CreateCounter("ProcEntry_ContainerCounter")»
> «FOREACH ... AS a»
> «CounterIncrement("ProcEntry_ContainerCounter")»
> «ENDFOREACH»
>
> «IF IsCounterGreaterThan("ProcEntry_ContainerCounter","0")== "true" »
> ...
> ...
>
> Karsten Thoms wrote:
>> Jim,
>>
>> I suppose you are searching for the select function. Either you only
>> iterate over the list of elements meeting that condition or you do
>> your initialization seperately.
>>
>> int count=0;
>> «FOREACH getSomeListOfElements.select(e|condition-with-e)»
>> count +=1;
>> «ENDFOREACH»
>>
>> objects * myarray = new
>> objects()[«getSomeListOfElements.select(e|condition-with-e) .size»]
>>
>> ~Karsten
>>
>> Jim schrieb:
>>> Hello ... I am porting a code generator to OAW from XSLT ...
>>>
>>> Is there a way i can store the number of times something meeting some
>>> foreach condition ?
>>>
>>> I kinda wanna do something like this below half baked pseudo code:
>>>
>>> int count = 0;
>>> «FOREACH //get some list ...
>>> //satisfy some condition
>>> count +=1;
>>> «ENDFOREACH»
>>>
>>>
>>> Reason being ... is that i need to create an array of objects:
>>>
>>> objects * myarray = new objects()[/*num of special objects in model*/]
>>>
>>> Cheers,
>>>
>>> Jim
|
|
|
Powered by
FUDForum. Page generated in 0.03706 seconds