<div dir="ltr">There&#39;s already no need to use Iteration.over() anymore. It&#39;s implicit if the operation passed in is an AbstractIterationOperation. We improved this a few months ago :)<div><br></div><div>For example: <a href="https://github.com/windup/windup/blob/master/rules-java/src/main/java/org/jboss/windup/rules/apps/java/scan/provider/IndexClassFilesRuleProvider.java#L47">https://github.com/windup/windup/blob/master/rules-java/src/main/java/org/jboss/windup/rules/apps/java/scan/provider/IndexClassFilesRuleProvider.java#L47</a></div><div><br></div><div><table class="" style="border-collapse:collapse;border-spacing:0px;color:rgb(51,51,51);font-family:Helvetica,arial,freesans,clean,sans-serif,&#39;Segoe UI Emoji&#39;,&#39;Segoe UI Symbol&#39;;font-size:13px;line-height:18.2000007629395px"><tbody><tr><td id="LC44" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible"><br></td></tr><tr><td id="L45" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC45" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">    <span class="" style="color:rgb(167,29,93)">public</span> <span class="">Configuration</span> <span class="" style="color:rgb(121,93,163)">getConfiguration</span>(<span class="">GraphContext</span> <span class="" style="color:rgb(29,62,129)">context</span>)</td></tr><tr><td id="L46" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC46" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">    {</td></tr><tr><td id="L47" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC47" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible;background-color:rgb(248,238,199)">        <span class="" style="color:rgb(167,29,93)">return</span> <span class="">ConfigurationBuilder</span><span class="" style="color:rgb(167,29,93)">.</span>begin()</td></tr><tr><td id="L48" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC48" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                    .addRule()</td></tr><tr><td id="L49" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC49" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                    .when(<span class="">Query</span><span class="" style="color:rgb(167,29,93)">.</span>fromType(<span class="">FileModel</span><span class="" style="color:rgb(167,29,93)">.</span>class)</td></tr><tr><td id="L50" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC50" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                                .withProperty(<span class="">FileModel</span><span class="" style="color:rgb(0,134,179)"><span class="" style="color:rgb(167,29,93)">.</span>IS_DIRECTORY</span>, <span class="" style="color:rgb(0,134,179)">false</span>)</td></tr><tr><td id="L51" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC51" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                                .withProperty(<span class="">FileModel</span><span class="" style="color:rgb(0,134,179)"><span class="" style="color:rgb(167,29,93)">.</span>FILE_PATH</span>, <span class="">QueryPropertyComparisonType</span><span class="" style="color:rgb(0,134,179)"><span class="" style="color:rgb(167,29,93)">.</span>REGEX</span>, <span class="" style="color:rgb(223,80,0)"><span class="">&quot;</span>.*<span class="">\\</span>.class<span class="">&quot;</span></span>)</td></tr><tr><td id="L52" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC52" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                    )</td></tr><tr><td id="L53" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC53" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                    .perform(</td></tr><tr><td id="L54" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC54" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                        <span class="" style="color:rgb(167,29,93)">new</span> <span class="">AddClassFileMetadata</span>()</td></tr><tr><td id="L55" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC55" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                        .and(<span class="">Commit</span><span class="" style="color:rgb(167,29,93)">.</span>every(<span class="" style="color:rgb(0,134,179)">10</span>))</td></tr><tr><td id="L56" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC56" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                        .and(<span class="">IterationProgress</span><span class="" style="color:rgb(167,29,93)">.</span>monitoring(<span class="" style="color:rgb(223,80,0)"><span class="">&quot;</span>Indexed class file: <span class="">&quot;</span></span>, <span class="" style="color:rgb(0,134,179)">1000</span>))</td></tr><tr><td id="L57" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC57" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">                    );</td></tr><tr><td id="L58" class="" style="padding:0px 10px;width:50px;min-width:50px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.298039);vertical-align:top;text-align:right;border-style:solid;border-color:rgb(238,238,238);border-width:0px 1px 0px 0px"></td><td id="LC58" class="" style="padding:0px 10px;font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:12px;vertical-align:top;white-space:pre;overflow:visible">    }</td></tr></tbody></table></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 27, 2015 at 8:18 PM, Ondrej Zizka <span dir="ltr">&lt;<a href="mailto:ozizka@redhat.com" target="_blank">ozizka@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
could this<br>
<br>
         .addRule()<br>
         .when(Query.fromType(ArchiveModel.class))<br>
         .perform(Iteration.over(ArchiveModel.class)<br>
             .perform(new AbstractIterationOperation&lt;ArchiveModel&gt;()<br>
                 {<br>
                     @Override<br>
                     public void perform(GraphRewrite event,<br>
EvaluationContext evCtx, ArchiveModel arch)<br>
                     {<br>
<br>
be just<br>
<br>
         .addRule()<br>
         .perform(new IterationOver(ArchiveModel.class) {<br>
                     @Override<br>
                     public void perform(GraphRewrite event,<br>
EvaluationContext evCtx, ArchiveModel arch)<br>
                     {<br>
<br>
?<br>
If it can ( a. principially, b. nobody objects), I could try coding it.<br>
<br>
<br>
Thanks,<br>
Ondra<br>
_______________________________________________<br>
windup-dev mailing list<br>
<a href="mailto:windup-dev@lists.jboss.org">windup-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/windup-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/windup-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Lincoln Baxter, III<br><a href="http://ocpsoft.org" target="_blank">http://ocpsoft.org</a><br>&quot;Simpler is better.&quot;</div>
</div>