<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body>
<div style="">
<div><br>
</div>
<div>Hello,</div>
<div><br>
</div>
<div>I need to develop a composite actor (programmatically) using eclipse. Before I code it, I designed it on Kepler canvas (see file IterateOverArray.xml attached) in order to test the functionality and then encapsulate it in my own composite actor. When I
 designed it, it worked perfectly but when I coded it and tried to run the program .. I always get the following error:</div>
<div><br>
</div>
<div>"</div>
<div>ptolemy.kernel.util.IllegalActionException: Conversion is not supported from ptolemy.data.ArrayToken '{"1 - 1"}' to the type string because the type of the token is higher or incomparable with the given type.</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.data.StringToken.convert(StringToken.java:172)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.data.type.BaseType$StringType.convert(BaseType.java:615)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.data.ArrayToken.<init>(ArrayToken.java:151)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.lib.hoc.IterateOverArray$IterateDirector.transferOutputs(IterateOverArray.java:706)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.CompositeActor.fire(CompositeActor.java:469)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.CompositeActor.iterate(CompositeActor.java:1069)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.sched.StaticSchedulingDirector.fire(StaticSchedulingDirector.java:188)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.CompositeActor.fire(CompositeActor.java:458)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.Manager.iterate(Manager.java:742)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.Manager.execute(Manager.java:351)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.Manager.run(Manager.java:1111)</div>
<div><span class="x_Apple-tab-span" style="white-space:pre"></span>at ptolemy.actor.Manager$PtolemyRunThread.run(Manager.java:1641</div>
<div>" </div>
<div><br>
</div>
<div>My code is:</div>
<div><br>
</div>
<div>"</div>
<div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">package</span> org.helloworld;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; min-height:15px">
<br>
</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.actor.TypedCompositeActor;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.actor.TypedIOPort;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.actor.TypedIORelation;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.actor.lib.ElementsToArray;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.actor.lib.Expression;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.actor.lib.hoc.IterateOverArray;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.actor.lib.hoc.MirrorPort;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.kernel.CompositeEntity;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.kernel.util.IllegalActionException;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">import</span> ptolemy.kernel.util.NameDuplicationException;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; min-height:15px">
<br>
</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span style="color:#9a1867">public</span> <span style="color:#9a1867">class</span>
<span style="text-decoration:underline">HelloWorld</span> <span style="color:#9a1867">
extends</span> TypedCompositeActor {</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; min-height:15px">
<br>
</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">public</span> HelloWorld(CompositeEntity container, String name)</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">throws</span> NameDuplicationException, IllegalActionException {</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">super</span>(container, name);</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">params</span> =
<span style="color:#9a1867">new</span> TypedIOPort(<span style="color:#9a1867">this</span>,
<span style="color:#382ffa">"params"</span>, <span style="color:#9a1867">true</span>,
<span style="color:#9a1867">false</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">params</span>.setMultiport(<span style="color:#9a1867">true</span>);</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">output</span> =
<span style="color:#9a1867">new</span> TypedIOPort(<span style="color:#9a1867">this</span>,
<span style="color:#382ffa">"output"</span>, <span style="color:#9a1867">false</span>,
<span style="color:#9a1867">true</span>);</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">elems2Arr</span> =
<span style="color:#9a1867">new</span> ElementsToArray(<span style="color:#9a1867">this</span>,
<span style="color:#382ffa">"elems2Arr"</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">relation1</span> =
<span style="color:#9a1867">new</span> TypedIORelation(<span style="color:#9a1867">this</span>,
<span style="color:#382ffa">"realtion1"</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; color:rgb(0,35,199)">
<span style="color:#000000"><span class="x_Apple-tab-span" style="white-space:pre"></span></span>params<span style="color:#000000">.link(</span>relation1<span style="color:#000000">);</span></div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; color:rgb(0,35,199)">
<span style="color:#000000"><span class="x_Apple-tab-span" style="white-space:pre"></span></span>elems2Arr<span style="color:#000000">.</span>input<span style="color:#000000">.link(</span>relation1<span style="color:#000000">);</span></div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">iter</span> =
<span style="color:#9a1867">new</span> IterateOverArray(<span style="color:#9a1867">this</span>,
<span style="color:#382ffa">"iter"</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">mpInput</span> =
<span style="color:#9a1867">new</span> MirrorPort(<span style="color:#0023c7">iter</span>,
<span style="color:#382ffa">"input"</span>); <span style="color:#0023c7">mpInput</span>.setInput(<span style="color:#9a1867">true</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">mpOutput</span> =
<span style="color:#9a1867">new</span> MirrorPort(<span style="color:#0023c7">iter</span>,
<span style="color:#382ffa">"output"</span>); <span style="color:#0023c7">mpOutput</span>.setOutput(<span style="color:#9a1867">true</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">exp</span> =
<span style="color:#9a1867">new</span> Expression(<span style="color:#0023c7">iter</span>,
<span style="color:#382ffa">"exp"</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; color:rgb(56,47,250)">
<span style="color:#000000"><span class="x_Apple-tab-span" style="white-space:pre"></span></span><span style="color:#0023c7">exp</span><span style="color:#000000">.</span><span style="color:#0023c7">expression</span><span style="color:#000000">.setExpression(</span>"input
 + ' - ' + iterationCount"<span style="color:#000000">);</span></div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">relation2</span> =
<span style="color:#9a1867">new</span> TypedIORelation(<span style="color:#9a1867">this</span>,
<span style="color:#382ffa">"realtion2"</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; color:rgb(0,35,199)">
<span style="color:#000000"><span class="x_Apple-tab-span" style="white-space:pre"></span></span>elems2Arr<span style="color:#000000">.</span>output<span style="color:#000000">.link(</span>relation2<span style="color:#000000">);</span></div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">iter</span>.getPort(<span style="color:#382ffa">"input"</span>).link(<span style="color:#0023c7">relation2</span>);</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">relation3</span> =
<span style="color:#9a1867">new</span> TypedIORelation(<span style="color:#9a1867">this</span>,
<span style="color:#382ffa">"realtion3"</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#0023c7">iter</span>.getPort(<span style="color:#382ffa">"output"</span>).link(<span style="color:#0023c7">relation3</span>);</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; color:rgb(0,35,199)">
<span style="color:#000000"><span class="x_Apple-tab-span" style="white-space:pre"></span></span>output<span style="color:#000000">.link(</span>relation3<span style="color:#000000">);</span></div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span>}</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">public</span> TypedIOPort
<span style="color:#0023c7">params</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">public</span> TypedIOPort
<span style="color:#0023c7">output</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; min-height:15px">
<br>
</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> MirrorPort
<span style="color:#0023c7">mpInput</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> MirrorPort
<span style="color:#0023c7">mpOutput</span>;</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> ElementsToArray
<span style="color:#0023c7">elems2Arr</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> IterateOverArray
<span style="color:#0023c7">iter</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> Expression
<span style="color:#0023c7">exp</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; min-height:15px">
<br>
</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> TypedIORelation
<span style="color:#0023c7">relation1</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> TypedIORelation
<span style="color:#0023c7">relation2</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">private</span> TypedIORelation
<span style="color:#0023c7">relation3</span>;</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; min-height:15px">
<br>
</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco; color:rgb(119,119,119)">
<span style="color:#000000"><span class="x_Apple-tab-span" style="white-space:pre"></span></span>@Override</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">public</span>
<span style="color:#9a1867">void</span> fire() <span style="color:#9a1867">throws</span> IllegalActionException {</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span><span style="color:#9a1867">super</span>.fire();</div>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
<span class="x_Apple-tab-span" style="white-space:pre"></span>}</div>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:11.0px Monaco; min-height:15.0px">
<span class="x_Apple-tab-span" style="white-space:pre"></span><br class="x_webkit-block-placeholder">
</p>
<div style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; font:normal normal normal 11px/normal Monaco">
}</div>
</div>
<div>"</div>
<div><br>
</div>
<div><br>
</div>
<div>I guess the problem is related to the director inside IterateOverArray actor .. any help please?</div>
<div><br>
</div>
<div><br>
</div>
<div>Thank you!</div>
<div><br>
</div>
<div>Muhannad Ali</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div style=""></div>
</body></html>