[Swift-devel] file declaration inside foreach

Yong Zhao yongzh at cs.uchicago.edu
Mon Apr 30 15:09:18 CDT 2007


How about
<vdl:getfieldvalue var="{i}"/> ?

Also do not forget the array closing business.

Yong.

On Mon, 30 Apr 2007, Ben Clifford wrote:

>
>
> On Wed, 25 Apr 2007, Mihael Hategan wrote:
>
> > On Wed, 2007-04-25 at 10:04 -0500, Mihael Hategan wrote:
> > > That with the assumption that k[i-1] would work.
> > > It seems that k[i] = k[i-1] + i gets translated into this:
> > > assign(dpath="[i]", dvar=k,
> > >   svar = sum(getFieldValue(var=k, path=concat("[]")), getFieldValue(i))
> > > )
> > >
> > > Seems like k[i-1] is translated into the wrong thing there
> > > (path=concat("[]")).
> >
> > It could, instead, be translated into: concat("[", subtraction(i, 1),
> > "]"). My guess is that would work.
>
> I tried this:
>
>                       <vdl:assign dpath="[i]" dvar="{k}">
>                         <argument name="svar">
>                         <sum>
>                           <vdl:getfieldvalue var="{k}">
>                             <argument name="path">
>                               <concat>
>                                 <string>[</string>
>                                 <subtraction><variable>i</variable>
>                                              <number>1</number>
>                                 </subtraction>
>                                 <string>]</string>
>                               </concat>
>                             </argument>
>                           </vdl:getfieldvalue>
>                           <vdl:getfieldvalue var="{i}"/>
>                         </sum>
>                         </argument>
>                       </vdl:assign>
>
> which I think is pretty much what you said in the non-xml syntax.
>
> But I get this:
>
> $ swift aaaa.kml
> Swift V 0.0405
> RunID: 7e7ozhoot4ha0
> Execution failed:
>         org.globus.cog.karajan.workflow.KarajanRuntimeException: Could not
> convert value to number: 1
>
> so then I tried this instead:
>
>                   <parallelFor name="$">
>                     <vdl:getarrayfieldvalue path="" var="{r}"/>
>                       <set names="$$, i">
>                         <each items="{$}"/>
>                       </set>
>                       <vdl:assign dpath="[i]" dvar="{k}">
>                         <argument name="svar">
>                         <sum>
>                           <vdl:getfieldvalue var="{k}">
>                             <argument name="path">
>                               <concat>
>                                 <string>[</string>
>
> <subtraction><getfieldvalue><variable>i</variabl
> e></getfieldvalue>
>                                              <number>1</number>
>                                 </subtraction>
>                                 <string>]</string>
>                               </concat>
>                             </argument>
>                           </vdl:getfieldvalue>
>                           <vdl:getfieldvalue var="{i}"/>
>                         </sum>
>                         </argument>
>                       </vdl:assign>
>                   </parallelFor>
>
>
> (adding in a getfieldvalue)
>
> and when I run that it sits in an infinite loop (second today lucky me!)
>
> Bleugh.
>
> full kml (edited from what came out of the compiler) is
> http://www.ci.uchicago.edu/~benc/aaaa.kml
>
> and the source I started with is in
>
> http://www.ci.uchicago.edu/~benc/aaaa.swift
>
> --
>
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel
>



More information about the Swift-devel mailing list