[kepler-users] nil vs. null

Corinna Gries cgries at wisc.edu
Thu Jun 3 06:46:33 PDT 2010


Hi Derik,

No that doesn't solve my problem. But there must be something wrong 
upstream in my worklflow for the expression to think s never equals nil. 
If I make a really simple workflow (attached) I can get the expression 
to work correctly. However, the problem is still in the RecordAssembler. 
No matter what I convert the nil to (object(null), "null", "NULL") it 
writes the insert statement wrong and then the DatabaseWriter throws an 
SQL exception:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ptolemy.kernel.util.IllegalActionException: failed to execute the 
command: INSERT INTO crystal_bog_buoy_hi_res (air_temp, daynum, 
sample_time, year4, record_id) VALUES ('NULL', '234', '1020', '2009', 
'236429') in .Unnamed2.Database Writer
Because:
Incorrect decimal value: 'NULL' for column 'air_temp' at row 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

So, how do I convince the RecordAssembler to not put the NULL in quotes?

thanks
Corinna

Derik Barseghian wrote:
> Hi Corinna,
> If I understand correctly, you may just want:
>
> s.equals("nil")?"NULL":s
>
> (nil as a String) in your Expression Actor. I'm guessing when you used 
> the Expression Evaluator you set s = nil, which is different from s = 
> "nil".
>
> Derik
>
> On Jun 2, 2010, at 4:49 PM, Corinna Gries wrote:
>
>> Hi,
>>
>> I am trying to run some simple range checks on sensor data coming 
>> from a DataTurbine actor. I.e. filtering out those -99999 values and 
>> replacing them with NULL. I have managed to replace them with nil and 
>> that works well for graphing the data in Kepler, but I can't insert 
>> the data into a database. The RecordAssembler seems to take 'nil' as 
>> a string. The expression s.equals(nil)?null:s works in the expression 
>> evaluator (i.e. returning object(null) when true) but returns always 
>> false when I put it into an expression actor.
>>
>> What am I missing here? The workflow is attached, although it won't 
>> work because I have the DT instance running on my localhost.
>>
>> thanks
>> Corinna
>> <?xml version="1.0" standalone="no"?>
>> <!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
>>    "http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
>> <entity name="DTrule1" class="ptolemy.actor.TypedCompositeActor">
>>    <property name="_createdBy" 
>> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>>    </property>
>>    <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList">
>>    </property>
>>    <property name="entityId" class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:178:886">
>>    </property>
>>    <property name="duration" 
>> class="ptolemy.actor.parameters.PortParameter" value="days * 24 * 60 
>> * 60">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> PortParameter component specifies a persistent value, but can also 
>> accept an updated/current value via an associated port. The current 
>> value and the persistent value may 
>> differ.</p>

<p>There are a few situations where 
>> PortParameter might not behave as expected:</p>
<ol> 
>> 
<li>If PortParameter is used in a transparent composite 
>> actor, then a token provided to a PortParameter will never be read. A 
>> transparent composite actor is one without a director. Workaround: 
>> Put a director in the composite actor. 
>> </li>
<li>Certain actors (such as the Integrator in 
>> CT) read parameter values only during initialization. During 
>> initialization, a PortParameter can only have a value set via the 
>> parameter (it can't have yet received a token). So if the initial 
>> value of the Integrator is set to the value of the PortParameter, 
>> then it will see only the parameter value, never the value provided 
>> via the port. Workaround: Use a RunCompositeActor to contain the 
>> model with the Integrator. 
>> </li>
</ol>
</configure></property>
>> <property name="prop:portParameter" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> specified persistent value. </configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:425:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.parameters.PortParameter">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1189:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Parameter">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Parameter">
>>        </property>
>>        <property name="_hideName" 
>> class="ptolemy.kernel.util.SingletonAttribute">
>>        </property>
>>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>>        </property>
>>        <property name="_smallIconDescription" 
>> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>>            <configure>
>>      <svg>
>>        <text x="20" style="font-size:14; font-family:SansSerif; 
>> fill:black" y="20">-P-</text>
>>      </svg>
>>    </configure>
>>        </property>
>>        <property name="_editorFactory" 
>> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[260.0, 55.0]">
>>        </property>
>>    </property>
>>    <property name="days" 
>> class="ptolemy.actor.parameters.PortParameter" value="5">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> PortParameter component specifies a persistent value, but can also 
>> accept an updated/current value via an associated port. The current 
>> value and the persistent value may 
>> differ.</p>

<p>There are a few situations where 
>> PortParameter might not behave as expected:</p>
<ol> 
>> 
<li>If PortParameter is used in a transparent composite 
>> actor, then a token provided to a PortParameter will never be read. A 
>> transparent composite actor is one without a director. Workaround: 
>> Put a director in the composite actor. 
>> </li>
<li>Certain actors (such as the Integrator in 
>> CT) read parameter values only during initialization. During 
>> initialization, a PortParameter can only have a value set via the 
>> parameter (it can't have yet received a token). So if the initial 
>> value of the Integrator is set to the value of the PortParameter, 
>> then it will see only the parameter value, never the value provided 
>> via the port. Workaround: Use a RunCompositeActor to contain the 
>> model with the Integrator. 
>> </li>
</ol>
</configure></property>
>> <property name="prop:portParameter" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> specified persistent value. </configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:425:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.parameters.PortParameter">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1189:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Parameter">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Parameter">
>>        </property>
>>        <property name="_hideName" 
>> class="ptolemy.kernel.util.SingletonAttribute">
>>        </property>
>>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>>        </property>
>>        <property name="_smallIconDescription" 
>> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>>            <configure>
>>      <svg>
>>        <text x="20" style="font-size:14; font-family:SansSerif; 
>> fill:black" y="20">-P-</text>
>>      </svg>
>>    </configure>
>>        </property>
>>        <property name="_editorFactory" 
>> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[260.0, 35.0]">
>>        </property>
>>    </property>
>>    <property name="startTime" 
>> class="ptolemy.actor.parameters.PortParameter" 
>> value=""2009-09-01 00:00:00"">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> PortParameter component specifies a persistent value, but can also 
>> accept an updated/current value via an associated port. The current 
>> value and the persistent value may 
>> differ.</p>

<p>There are a few situations where 
>> PortParameter might not behave as expected:</p>
<ol> 
>> 
<li>If PortParameter is used in a transparent composite 
>> actor, then a token provided to a PortParameter will never be read. A 
>> transparent composite actor is one without a director. Workaround: 
>> Put a director in the composite actor. 
>> </li>
<li>Certain actors (such as the Integrator in 
>> CT) read parameter values only during initialization. During 
>> initialization, a PortParameter can only have a value set via the 
>> parameter (it can't have yet received a token). So if the initial 
>> value of the Integrator is set to the value of the PortParameter, 
>> then it will see only the parameter value, never the value provided 
>> via the port. Workaround: Use a RunCompositeActor to contain the 
>> model with the Integrator. 
>> </li>
</ol>
</configure></property>
>> <property name="prop:portParameter" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> specified persistent value. </configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:425:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.parameters.PortParameter">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1189:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Parameter">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Parameter">
>>        </property>
>>        <property name="_hideName" 
>> class="ptolemy.kernel.util.SingletonAttribute">
>>        </property>
>>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>>        </property>
>>        <property name="_smallIconDescription" 
>> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>>            <configure>
>>      <svg>
>>        <text x="20" style="font-size:14; font-family:SansSerif; 
>> fill:black" y="20">-P-</text>
>>      </svg>
>>    </configure>
>>        </property>
>>        <property name="_editorFactory" 
>> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{260.0, 15.0}">
>>        </property>
>>    </property>
>>    <property name="sampleInterval" 
>> class="ptolemy.data.expr.Parameter" value="60">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:420:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.data.expr.Parameter">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1184:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Parameter">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Parameter">
>>        </property>
>>        <property name="_hideName" 
>> class="ptolemy.kernel.util.SingletonAttribute">
>>        </property>
>>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>>            <property name="_color" 
>> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>>            </property>
>>        </property>
>>        <property name="_smallIconDescription" 
>> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>>            <configure>
>>      <svg>
>>        <text x="20" style="font-size:14; font-family:SansSerif; 
>> fill:blue" y="20">-P-</text>
>>      </svg>
>>    </configure>
>>        </property>
>>        <property name="_editorFactory" 
>> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{260, 80}">
>>        </property>
>>    </property>
>>    <property name="maxLengthOfDataArrays" 
>> class="ptolemy.data.expr.Parameter" value="(duration/sampleInterval)">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:420:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.data.expr.Parameter">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1184:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Parameter">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Parameter">
>>        </property>
>>        <property name="_hideName" 
>> class="ptolemy.kernel.util.SingletonAttribute">
>>        </property>
>>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>>            <property name="_color" 
>> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>>            </property>
>>        </property>
>>        <property name="_smallIconDescription" 
>> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>>            <configure>
>>      <svg>
>>        <text x="20" style="font-size:14; font-family:SansSerif; 
>> fill:blue" y="20">-P-</text>
>>      </svg>
>>    </configure>
>>        </property>
>>        <property name="_editorFactory" 
>> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[260.0, 100.0]">
>>        </property>
>>    </property>
>>    <property name="_windowProperties" 
>> class="ptolemy.actor.gui.WindowPropertiesAttribute" 
>> value="{bounds={0, 0, 1288, 1002}, maximized=false}">
>>    </property>
>>    <property name="_vergilSize" 
>> class="ptolemy.actor.gui.SizeAttribute" value="[971, 840]">
>>    </property>
>>    <property name="_vergilZoomFactor" 
>> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>>    </property>
>>    <property name="_vergilCenter" 
>> class="ptolemy.data.expr.ExpertParameter" value="{640.5, 420.0}">
>>    </property>
>>    <property name="PN Director" 
>> class="ptolemy.domains.pn.kernel.PNDirector">
>>        <property name="timeResolution" 
>> class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
>>        </property>
>>        <property name="initialQueueCapacity" 
>> class="ptolemy.data.expr.Parameter" value="1">
>>        </property>
>>        <property name="maximumQueueCapacity" 
>> class="ptolemy.data.expr.Parameter" value="65536">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Mudit 
>> Goel, Edward A. Lee, Xiaowen Xin</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>PN 
>> Directors are natural candidates for managing workflows that require 
>> parallel processing on distributed computing systems. PN workflows 
>> are powerful because they have few restrictions. On the other hand, 
>> they can be very inefficient.</p>

<p>The Process 
>> Network (PN) Director is similar to the SDF Director in that it does 
>> not have a notion of time. However, unlike the SDF Director, the PN 
>> Director does not statically calculate firing schedules. Instead, a 
>> PN workflow is driven by data availability: tokens are created on 
>> output ports whenever input tokens are available and the outputs can 
>> be calculated. Output tokens are passed to connected actors, where 
>> they are held in a buffer until that next actor collects all required 
>> inputs and can fire. The PN Director finishes executing a workflow 
>> only when there are no new data token sources anywhere in the 
>> workflow. </p>

<p>The same execution process 
>> that gives the PN Director its flexibility can also lead to some 
>> unexpected results: workflows may refuse to automatically terminate 
>> because tokens are always generated and available to downstream 
>> actors, for example. If one actor fires at a much higher rate than 
>> another, a downstream actor's memory buffer may overflow, causing 
>> workflow execution to fail.</p>

 <p>There are at 
>> least three ways for a PN model to terminate itself:
 
>> <ol>
 <li>Have the model starve itself.  Typically, a 
>> boolean switch is used.
 See the PN OrderedMerge demo at
  
>> <code>ptolemy/domains/pn/demo/OrderedMerge/OrderedMerge.xml</code></li>

 
>> <li>Have the model call the Stop actor.  See the PN 
>> RemoveNilTokens demo at
  
>> <code>ptolemy/domains/pn/demo/RemoveNilTokens/RemoveNilTokens.xml</code></li>

 
>> <li>Set the <i>firingCountLimit</i> actor
 
>> parameter to the number of iterations desired.  Actors such as 
>> Ramp
 extend LimitedFiringSource and have the 
>> <i>firingCountLimit</i> parameter.</li>
 
>> </ol></p>
</configure></property>
>> <property name="prop:initialQueueCapacity" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> initial size of the queues for each communication channel. The value 
>> is an integer that defaults to 1. This is an advanced parameter that 
>> can usually be left at its  default value.</configure></property>
>> <property name="prop:maximumQueueCapacity" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> maximum size of the queues for each communication channel. The value 
>> is an integer that defaults to 65536. To specify unbounded queues, 
>> set the value to 0. This is an advanced parameter that can usually be 
>> left at its  default value.</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:director:2:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.domains.pn.kernel.PNDirector">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:directorclass:2:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Director">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Director">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{125, 55}">
>>        </property>
>>    </property>
>>    <port name="duration" class="ptolemy.actor.parameters.ParameterPort">
>>        <property name="input"/>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{240.0, 50.0}">
>>        </property>
>>    </port>
>>    <port name="days" class="ptolemy.actor.parameters.ParameterPort">
>>        <property name="input"/>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{240.0, 30.0}">
>>        </property>
>>    </port>
>>    <port name="startTime" 
>> class="ptolemy.actor.parameters.ParameterPort">
>>        <property name="input"/>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{240.0, 10.0}">
>>        </property>
>>    </port>
>>    <entity name="DataTurbine" 
>> class="org.kepler.data.datasource.dataturbine.DataTurbine">
>>        <property name="DataTurbine Address" 
>> class="ptolemy.actor.parameters.PortParameter" 
>> value=""localhost:3333"">
>>        </property>
>>        <property name="Sink Mode" class="ptolemy.data.expr.Parameter" 
>> value="Request">
>>        </property>
>>        <property name="Start Time (for Request or Subscribe modes)" 
>> class="ptolemy.actor.parameters.PortParameter" value="startTime">
>>        </property>
>>        <property name="Duration (for Request or Subscribe modes)" 
>> class="ptolemy.actor.parameters.PortParameter" value="duration">
>>        </property>
>>        <property name="Reference (for Request or Subscribe modes)" 
>> class="ptolemy.data.expr.Parameter" value="absolute">
>>        </property>
>>        <property name="Block Timeout (ms) (for Fetch)" 
>> class="ptolemy.data.expr.Parameter" value="15000">
>>        </property>
>>        <property name="Output Data Type" 
>> class="ptolemy.data.expr.Parameter" value="Record of 2 arrays">
>>        </property>
>>        <property name="Pad data gaps with nils" 
>> class="ptolemy.data.expr.Parameter" value="false">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Derik 
>> Barseghian</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
The 
>> DataTurbine actor retrieves data from a RBNB
                
>> DataTurbine server and
 outputs it as DoubleTokens. Sink 
>> mode
                Request has been tested beneath SDF, 
 
>> Monitor and Subscribe
                modes briefly in 
>> PN.</configure></property>
>> <property name="prop:Sink Mode" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
                
>> Sink mode.
                
>> <br></br>
                
>> <ul>
                    <li>"Request": 
>> Initiates a request for a specific time slice 
>> of
                        
>> data.</li>
                    
>> <li>"Subscribe": Starts a continuous feed of data on 
>> the specified
                        channels to this sink, for 
>> retrieval. Each block retrieved will be
                        
>> duration time units in length.</li>
                    
>> <li>"Monitor": Similar to Subscribe, but allows for 
>> continuous
                        frames of data without 
>> gaps.</li>
                </ul>
            
>> </configure></property>
>> <property name="prop:Block Timeout (ms) (for Fetch)" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> amount of time (ms) to wait for data to become
                
>> available. Use 0 for no delay or any negative number for an 
>> infinite
                delay.</configure></property>
>> <property name="prop:Output Data Type" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Format 
>> of output datapoint and timestamp pairs: Record 
>> of
                2 Arrays, or an Array of X 
>> Records.</configure></property>
>> <property name="prop:Duration (for Request or Subscribe modes)" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> duration of the request. Unit is seconds unless
                
>> fetchByFrame is set.</configure></property>
>> <property name="prop:Start Time (for Request or Subscribe modes)" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Start 
>> time for Request mode. "yyyy-MM-dd
                
>> HH:mm:ss"</configure></property>
>> <property name="prop:Reference (for Request or Subscribe modes)" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>For
                
>> Subscribe mode: Any of "newest", 
>> "oldest",
                "absolute", 
>> "next", or "previous".
                
>> <br></br>
                For Request 
>> mode:
                <ul>
                    
>> <li>"absolute" -- The start parameter is absolute 
>> time
                        from midnight, Jan 1st, 1970 
>> UTC.</li>
                    <li>"newest" 
>> -- The start parameter is measured from 
>> the
                        most recent data available in the 
>> server at the time this request
                        is 
>> received. Note that for this case, the start parameter 
>> actually
                        represents the end of the 
>> duration, and positive times proceed
                        
>> toward oldest data.</li>
                    
>> <li>"oldest" -- As "newest", but relative 
>> to
                        the oldest 
>> data.</li>
                    
>> <li>"aligned" -- As "newest", but rather 
>> than
                        per channel, this is relative to the 
>> newest for all of the
                        
>> channels.</li>
                    
>> <li>"after" -- A combination between 
>> "absolute"
                        and 
>> "newest", this flag causes the server to return 
>> the
                        newest data available after the 
>> specified start time. Unlike
                        
>> "newest", you do not have to request the data to 
>> find
                        out that you already have it. Unlike 
>> "absolute", a gap
                        may be 
>> inserted in the data to provide you with the freshest 
>> data.
                    </li>
                    
>> <li>"modified" -- Similar to "after", 
>> but
                        attempts to return a duration's worth 
>> of data in a contiguous
                        block. If the 
>> data is not available after the start time, it 
>> will
                        be taken from before the start 
>> time.</li>
                    <li>"next" - 
>> gets the data that immediately follows 
>> the
                        time range specified. This will skip 
>> over gaps.</li>
                    
>> <li>"previous" - get the data that immediately 
>> preceeds
                        the time range specified. This 
>> will skip over gaps.</li>
                
>> </ul>
            </configure></property>
>> <property name="prop:DataTurbine Address" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The URL 
>> to the DataTurbine Server</configure></property>
>> <property name="prop:Pad data gaps with nils" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Will 
>> attempt to identify and pad gappy data with pairs 
>> of
                timestamps and nils Need at least 2 samples to 
>> be able to pad.
            </configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:179:6">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.kepler.data.datasource.dataturbine.DataTurbine">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:550:6">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#RemoteInputActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#RemoteInput">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[95.0, 545.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:550:6">
>>        </property>
>>        <port name="CrystalBogBuoy/RECORD" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/airTemp" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/c3Temp" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/cdom" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/chloro" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/dataloggerBatt" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/doptoPPM" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/doptoSat" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/doptoTemp" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/phyco" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/radioBatt" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/relHum" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(1)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(10)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(2)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(3)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(4)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(5)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(6)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(7)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(8)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/tempLine(9)" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="CrystalBogBuoy/windSpd" 
>> class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>    </entity>
>>    <entity name="Record Disassembler" 
>> class="ptolemy.actor.lib.RecordDisassembler">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong 
>> Xiong</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> RecordDisassembler actor receives a record, which it disassembles and 
>> outputs via user-specified output ports. The actor reads and 
>> disassembles one record each time it 
>> fires.</p>

<p>A record is a composite data type 
>> consisting of one or more elements. Each element is named and can 
>> have a distinct type. For example, {number=1, name="dog"} 
>> is a record containing two elements. The first element, named 
>> "number", contains an integer value. The second element, 
>> named "name", contains a string value. 
>> </p>

<p>The name of each record element must 
>> match the name of a user-specified output port. For example, if the 
>> input record is {day="Monday", week=5, month=12}, the 
>> output ports must be named "Monday", "week" and 
>> "month". If the record contains more fields than the actor 
>> has output ports, the extra fields are 
>> ignored.</p>

</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a record, which the actor will disassemble. 
>> </configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:180:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.RecordDisassembler">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:924:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#RecordActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[205.0, 205.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:48:1">
>>        </property>
>>        <port name="timestamps" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>        <port name="data" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>        </port>
>>    </entity>
>>    <entity name="Array To Sequence" 
>> class="ptolemy.domains.sdf.lib.ArrayToSequence">
>>        <property name="arrayLength" 
>> class="ptolemy.data.expr.Parameter" value="maxLengthOfDataArrays">
>>        </property>
>>        <property name="enforceArrayLength" 
>> class="ptolemy.data.expr.Parameter" value="false">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>unknown</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> ArrayToSequence actor  outputs the individual values of an array as a 
>> sequence of tokens.</p>

<p>The actor can accept 
>> an array with any element type (e.g., int, double, etc.). Each time 
>> the actor fires, it reads and disassembles one array and outputs a 
>> sequence of values.</p>

<p>The arrayLength 
>> parameter can be used to specify the length of the source array. If 
>> the enforceArrayLength parameter is selected, then the actor will 
>> only accept arrays of the specified length. The enforceArrayLength 
>> parameter should be selected if using an SDF director. If using other 
>> directors, such as DE or PN, the enforceArrayLength parameter can be 
>> deselected, in which case the arrayLength parameter is 
>> ignored.</p>

<p>The ArrayToSequence actor is 
>> similar to the ArrayToElements actor, except that it outputs values 
>> as a sequence via a single output port. The ArrayToElements actor 
>> outputs individual values on multiple channels of the output port. 
>> Use the ArrayAccumulator actor to convert an array into a single 
>> string, where each value is separated by a specified 
>> separator.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts an array of elements of any 
>> type.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts a sequence of the disassembled array 
>> values. </configure></property>
>> <property name="prop:enforceArrayLength" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify 
>> whether or not to enforce the arrayLength parameter. By default, the 
>> arrayLength is enforced, and the actor will only accept arrays of the 
>> specified length.</configure></property>
>> <property name="prop:arrayLength" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The size 
>> of the input array. The default is 1.</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:186:2">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.domains.sdf.lib.ArrayToSequence">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:907:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ArrayActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[330.0, 175.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:31:1">
>>        </property>
>>    </entity>
>>    <entity name="Array To Sequence2" 
>> class="ptolemy.domains.sdf.lib.ArrayToSequence">
>>        <property name="arrayLength" 
>> class="ptolemy.data.expr.Parameter" value="maxLengthOfDataArrays">
>>        </property>
>>        <property name="enforceArrayLength" 
>> class="ptolemy.data.expr.Parameter" value="false">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>unknown</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> ArrayToSequence actor  outputs the individual values of an array as a 
>> sequence of tokens.</p>

<p>The actor can accept 
>> an array with any element type (e.g., int, double, etc.). Each time 
>> the actor fires, it reads and disassembles one array and outputs a 
>> sequence of values.</p>

<p>The arrayLength 
>> parameter can be used to specify the length of the source array. If 
>> the enforceArrayLength parameter is selected, then the actor will 
>> only accept arrays of the specified length. The enforceArrayLength 
>> parameter should be selected if using an SDF director. If using other 
>> directors, such as DE or PN, the enforceArrayLength parameter can be 
>> deselected, in which case the arrayLength parameter is 
>> ignored.</p>

<p>The ArrayToSequence actor is 
>> similar to the ArrayToElements actor, except that it outputs values 
>> as a sequence via a single output port. The ArrayToElements actor 
>> outputs individual values on multiple channels of the output port. 
>> Use the ArrayAccumulator actor to convert an array into a single 
>> string, where each value is separated by a specified 
>> separator.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts an array of elements of any 
>> type.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts a sequence of the disassembled array 
>> values. </configure></property>
>> <property name="prop:enforceArrayLength" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify 
>> whether or not to enforce the arrayLength parameter. By default, the 
>> arrayLength is enforced, and the actor will only accept arrays of the 
>> specified length.</configure></property>
>> <property name="prop:arrayLength" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The size 
>> of the input array. The default is 1.</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:187:2">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.domains.sdf.lib.ArrayToSequence">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:907:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ArrayActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[325.0, 315.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:31:1">
>>        </property>
>>    </entity>
>>    <entity name="generalRangeCheck" 
>> class="ptolemy.actor.TypedCompositeActor">
>>        <property name="_createdBy" 
>> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>>        </property>
>>        <property name="entityId" class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:189:294">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.TypedCompositeActor">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:449:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Actor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
>>        </property>
>>        <property name="semanticType22" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Workflow">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong 
>> Xiong</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A 
>> Composite actor is an aggregation of actors. It may have a local 
>> director that is responsible for executing the contained actors. A 
>> Composite actor with a local director is called an opaque actor. 
>> Composite actors do not require a local director. Composite actors 
>> with no local director "inherit" the director from the 
>> containing workflow and are called 
>> non-opaque.</p>

<p>To create a composite actor, 
>> drag and drop the Composite actor onto the Workflow canvas. 
>> Right-click the actor and select Open Actor from the drop-down menu. 
>> A new Kepler application window will open for designing the 
>> composite.</p></configure></property>
>> </property>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[580.0, 305.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:449:1">
>>        </property>
>>        <property name="_windowProperties" 
>> class="ptolemy.actor.gui.WindowPropertiesAttribute" 
>> value="{bounds={16, 22, 1189, 916}, maximized=false}">
>>        </property>
>>        <property name="_vergilSize" 
>> class="ptolemy.actor.gui.SizeAttribute" value="[872, 754]">
>>        </property>
>>        <property name="_vergilZoomFactor" 
>> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>>        </property>
>>        <property name="_vergilCenter" 
>> class="ptolemy.data.expr.ExpertParameter" value="{436.0, 377.0}">
>>        </property>
>>        <property name="upperLimit" 
>> class="ptolemy.data.expr.Parameter" value="50">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:420:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.data.expr.Parameter">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1184:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Parameter">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Parameter">
>>            </property>
>>            <property name="_hideName" 
>> class="ptolemy.kernel.util.SingletonAttribute">
>>            </property>
>>            <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>>                <property name="_color" 
>> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>>                </property>
>>            </property>
>>            <property name="_smallIconDescription" 
>> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>>                <configure>
>>      <svg>
>>        <text x="20" style="font-size:14; font-family:SansSerif; 
>> fill:blue" y="20">-P-</text>
>>      </svg>
>>    </configure>
>>            </property>
>>            <property name="_editorFactory" 
>> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{215, 35}">
>>            </property>
>>        </property>
>>        <property name="lowerLimit" 
>> class="ptolemy.data.expr.Parameter" value="10">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:420:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.data.expr.Parameter">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1184:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Parameter">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Parameter">
>>            </property>
>>            <property name="_hideName" 
>> class="ptolemy.kernel.util.SingletonAttribute">
>>            </property>
>>            <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>>                <property name="_color" 
>> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>>                </property>
>>            </property>
>>            <property name="_smallIconDescription" 
>> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>>                <configure>
>>      <svg>
>>        <text x="20" style="font-size:14; font-family:SansSerif; 
>> fill:blue" y="20">-P-</text>
>>      </svg>
>>    </configure>
>>            </property>
>>            <property name="_editorFactory" 
>> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[215.0, 55.0]">
>>            </property>
>>        </property>
>>        <port name="flagIn" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[20.0, 470.0]">
>>            </property>
>>        </port>
>>        <port name="flagOut" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[770.0, 455.0]">
>>            </property>
>>        </port>
>>        <port name="dataIn" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[20.0, 190.0]">
>>            </property>
>>        </port>
>>        <port name="dataOut" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[760.0, 200.0]">
>>            </property>
>>        </port>
>>        <entity name="belowRange" 
>> class="ptolemy.actor.lib.logic.Comparator">
>>            <property name="comparison" 
>> class="ptolemy.kernel.util.StringAttribute" value=">">
>>            </property>
>>            <property name="tolerance" 
>> class="ptolemy.data.expr.Parameter" value="0.0">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> Comparator reads two values and compares them. The actor outputs a 
>> Boolean value (true or false) that indicates whether the comparison 
>> criteria were met or not.</p>

<p>Specify the 
>> type of comparison to perform with the comparison parameter. The 
>> following comparisons may be performed:</p>

<table 
>> border="1">
<tr><td>Comparison</td><td>Definition</td></tr>
<tr><td>></td><td>left 
>> is greater than right; the default 
>> comparison.</td></tr>
<tr><td>>=</td><td>left 
>> is greater than or equal to 
>> right</td></tr>
<tr><td>less 
>> than</td><td>left is less than 
>> right</td></tr>
<tr><td>less than or 
>> equal</td><td>left is less than or equal to 
>> right</td></tr>
<tr><td>==</td><td>left 
>> equals 
>> right</td></tr>
</table>

<p>The 
>> input ports are named "left" and "right" to 
>> indicate which side of the comparison operator their value appears 
>> on.</p>

<p>The tolerance parameter, which 
>> defaults to zero, defines an error tolerance. If the tolerance is 
>> greater than zero, the actor will output true when the specified 
>> comparison is not exactly satisfied, but rather is almost satisfied 
>> within the specified tolerance.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts a Boolean value (true or false) that 
>> indicates whether the comparison criteria were met or 
>> not.</configure></property>
>> <property name="port:right" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double(or any data type that can be losslessly 
>> converted to a double token) that will be used on the right side of 
>> the comparison operator.</configure></property>
>> <property name="port:left" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double (or any data type that can be losslessly 
>> converted to a double token) that will be used on the left side of 
>> the comparison operator.</configure></property>
>> <property name="prop:tolerance" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> tolerance for the comparison. If the tolerance is greater than zero, 
>> the actor will output true when the comparison is satisfied within 
>> the specified tolerance (i.e., the comparison need not be exactly 
>> satisfied). The value is a double that defaults to 
>> 0.0.</configure></property>
>> <property name="prop:comparison" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> comparison to perform. The default is greater 
>> than.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:64:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.logic.Comparator">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:939:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[90.0, 295.0]">
>>            </property>
>>            <property name="" class="ptolemy.vergil.basic.DocAttribute">
>>                <property name="description" 
>> class="ptolemy.kernel.util.StringAttribute" value="
<p>The 
>> Comparator reads two values and compares them. The actor outputs a 
>> Boolean value (true or false) that indicates whether the comparison 
>> criteria were met or not.</p>

<p>Specify the 
>> type of comparison to perform with the comparison parameter. The 
>> following comparisons may be performed:</p>

<table 
>> border="1">
<tr><td>Comparison</td><td>Definition</td></tr>
<tr><td>></td><td>left 
>> is greater than right; the default 
>> comparison.</td></tr>
<tr><td>>=</td><td>left 
>> is greater than or equal to 
>> right</td></tr>
<tr><td>less 
>> than</td><td>left is less than 
>> right</td></tr>
<tr><td>less than or 
>> equal</td><td>left is less than or equal to 
>> right</td></tr>
<tr><td>==</td><td>left 
>> equals 
>> right</td></tr>
</table>

<p>The 
>> input ports are named "left" and "right" to 
>> indicate which side of the comparison operator their value appears 
>> on.</p>

<p>The tolerance parameter, which 
>> defaults to zero, defines an error tolerance. If the tolerance is 
>> greater than zero, the actor will output true when the specified 
>> comparison is not exactly satisfied, but rather is almost satisfied 
>> within the specified tolerance.</p>">
>>                </property>
>>                <property name="author" 
>> class="ptolemy.kernel.util.StringAttribute" value="Edward A. Lee">
>>                </property>
>>                <property name="version" 
>> class="ptolemy.kernel.util.StringAttribute" value="null">
>>                </property>
>>                <property name="comparison (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="The comparison to 
>> perform. The default is greater than.">
>>                </property>
>>                <property name="tolerance (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="The tolerance for 
>> the comparison. If the tolerance is greater than zero, the actor will 
>> output true when the comparison is satisfied within the specified 
>> tolerance (i.e., the comparison need not be exactly satisfied). The 
>> value is a double that defaults to 0.0.">
>>                </property>
>>                <property name="left (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An input port that 
>> accepts a double (or any data type that can be losslessly converted 
>> to a double token) that will be used on the left side of the 
>> comparison operator.">
>>                </property>
>>                <property name="right (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An input port that 
>> accepts a double(or any data type that can be losslessly converted to 
>> a double token) that will be used on the right side of the comparison 
>> operator.">
>>                </property>
>>                <property name="output (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An output port 
>> that broadcasts a Boolean value (true or false) that indicates 
>> whether the comparison criteria were met or not.">
>>                </property>
>>            </property>
>>        </entity>
>>        <entity name="Boolean To Anything" 
>> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>>            <property name="falseValue" 
>> class="ptolemy.data.expr.Parameter" value="0">
>>            </property>
>>            <property name="trueValue" 
>> class="ptolemy.data.expr.Parameter" value="1">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> BooleanToAnything actor converts a Boolean token (i.e., true or 
>> false) into any data type and value. </p>

<p>The 
>> actor reads a Boolean value and assigns a new value based on the 
>> specified conversion values. The actor outputs the value of the 
>> trueValue parameter if the Boolean input is true. The actor outputs 
>> the value of the falseValue parameter if the Boolean input is false. 
>> The type of the output matches that of the specified conversion 
>> values.
</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted data. The actor will output 
>> the value of the falseValue parameter if the input value is false, or 
>> the value of the trueValue parameter if the input value is 
>> true.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that receives a Boolean token.</configure></property>
>> <property name="prop:trueValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "true" input is read. 
>> </configure></property>
>> <property name="prop:falseValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "false" input is 
>> read.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:216:2">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:910:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[250.0, 295.0]">
>>            </property>
>>            <property name="" class="ptolemy.vergil.basic.DocAttribute">
>>                <property name="description" 
>> class="ptolemy.kernel.util.StringAttribute" value="<p>The 
>> BooleanToAnything actor converts a Boolean token (i.e., true or 
>> false) into any data type and value. </p>

<p>The 
>> actor reads a Boolean value and assigns a new value based on the 
>> specified conversion values. The actor outputs the value of the 
>> trueValue parameter if the Boolean input is true. The actor outputs 
>> the value of the falseValue parameter if the Boolean input is false. 
>> The type of the output matches that of the specified conversion 
>> values.
</p>">
>>                </property>
>>                <property name="author" 
>> class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
>>                </property>
>>                <property name="version" 
>> class="ptolemy.kernel.util.StringAttribute" value="null">
>>                </property>
>>                <property name="falseValue (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="The value to output 
>> when a "false" input is read.">
>>                </property>
>>                <property name="trueValue (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="The value to output 
>> when a "true" input is read. ">
>>                </property>
>>                <property name="input (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An input port that 
>> receives a Boolean token.">
>>                </property>
>>                <property name="output (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An output port 
>> that broadcasts the converted data. The actor will output the value 
>> of the falseValue parameter if the input value is false, or the value 
>> of the trueValue parameter if the input value is true.">
>>                </property>
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:34:1">
>>            </property>
>>        </entity>
>>        <entity name="lowerLimit" class="ptolemy.actor.lib.Const">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="maxLengthOfDataArrays">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value="lowerLimit">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:209:6">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[55.0, 390.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <entity name="Boolean Switch" 
>> class="ptolemy.actor.lib.BooleanSwitch">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Steve 
>> Neuendorffer</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> BooleanSwitch actor reads a value of any type, as well as a Boolean 
>> token that is used as a control. If the Boolean token is true, the 
>> actor outputs the received value to the trueOutput port; if the 
>> Boolean token is false, the actor outputs the received value to the 
>> falseOutput port.
If the actor has never received a value on the 
>> control port, then the actor will output to the falseOutput 
>> port.</p>

<p>The actor only works under certain 
>> directors. It will not work under an SDF Director, but it will under 
>> a PN Director, for example.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts tokens of any type.</configure></property>
>> <property name="port:falseOutput" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the input token when the control is 
>> false.</configure></property>
>> <property name="port:trueOutput" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the input token when the control is 
>> true.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a Boolean token used to select which output port 
>> (trueOutput or falseOutput) to broadcast.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:54:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.BooleanSwitch">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:930:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#BooleanControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#BooleanControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[155.0, 195.0]">
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="Select" class="ptolemy.actor.lib.Select">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Select  actor "selects" and outputs a token from among its 
>> input tokens. The actor accepts one or more values of any type via 
>> its input multiport and selects the value on the channel specified 
>> via the control port. The value of the selected channel is output 
>> each time the actor iterates.</p>

<p>Each time 
>> the actor iterates, it checks to see if a token is available on its 
>> control port. If so, the actor reads the value and uses it to 
>> determine which of its input channels to output next. If an input 
>> token is available on the specified channel, then that token is read 
>> and sent to the output. 
If the actor has never received a value 
>> on the control port, then the actor will read and output channel zero 
>> of the input port. If the value of the most recently received token 
>> on the control port is out of range (less than zero, or greater than 
>> or equal to the width of the input), then the actor will not fire 
>> (although it will continue to consume tokens on the control port). 
>> </p>

<p>The actor never discards input tokens. 
>> Note that in DE workflows, where this actor is commonly used, every 
>> time the actor receives a new "select" channel via the 
>> control port, the actor will output (at the next firing) all 
>> previously unread input tokens on the specified channel in the order 
>> in which they arrived.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the selected input 
>> channel.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that accepts tokens of any type.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts integer tokens that indicate which input channel to 
>> output (0, 1, 2, 3, etc). If the value is out of range (less than 
>> zero, or greater than or equal to the width of the input), then the 
>> actor will not fire.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:50:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Select">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:926:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[310.0, 185.0]">
>>            </property>
>>            <property name="" class="ptolemy.vergil.basic.DocAttribute">
>>                <property name="description" 
>> class="ptolemy.kernel.util.StringAttribute" value="<p>The 
>> Select  actor "selects" and outputs a token from among its 
>> input tokens. The actor accepts one or more values of any type via 
>> its input multiport and selects the value on the channel specified 
>> via the control port. The value of the selected channel is output 
>> each time the actor iterates.</p>

<p>Each time 
>> the actor iterates, it checks to see if a token is available on its 
>> control port. If so, the actor reads the value and uses it to 
>> determine which of its input channels to output next. If an input 
>> token is available on the specified channel, then that token is read 
>> and sent to the output. 
If the actor has never received a value 
>> on the control port, then the actor will read and output channel zero 
>> of the input port. If the value of the most recently received token 
>> on the control port is out of range (less than zero, or greater than 
>> or equal to the width of the input), then the actor will not fire 
>> (although it will continue to consume tokens on the control port). 
>> </p>

<p>The actor never discards input tokens. 
>> Note that in DE workflows, where this actor is commonly used, every 
>> time the actor receives a new "select" channel via the 
>> control port, the actor will output (at the next firing) all 
>> previously unread input tokens on the specified channel in the order 
>> in which they arrived.</p>">
>>                </property>
>>                <property name="author" 
>> class="ptolemy.kernel.util.StringAttribute" value="Edward A. Lee">
>>                </property>
>>                <property name="version" 
>> class="ptolemy.kernel.util.StringAttribute" value="null">
>>                </property>
>>                <property name="input (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="A multiport that 
>> accepts tokens of any type.">
>>                </property>
>>                <property name="output (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An output port 
>> that broadcasts the selected input channel.">
>>                </property>
>>                <property name="control (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An input port that 
>> accepts integer tokens that indicate which input channel to output 
>> (0, 1, 2, 3, etc). If the value is out of range (less than zero, or 
>> greater than or equal to the width of the input), then the actor will 
>> not fire.">
>>                </property>
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="Boolean Switch2" 
>> class="ptolemy.actor.lib.BooleanSwitch">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Steve 
>> Neuendorffer</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> BooleanSwitch actor reads a value of any type, as well as a Boolean 
>> token that is used as a control. If the Boolean token is true, the 
>> actor outputs the received value to the trueOutput port; if the 
>> Boolean token is false, the actor outputs the received value to the 
>> falseOutput port.
If the actor has never received a value on the 
>> control port, then the actor will output to the falseOutput 
>> port.</p>

<p>The actor only works under certain 
>> directors. It will not work under an SDF Director, but it will under 
>> a PN Director, for example.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts tokens of any type.</configure></property>
>> <property name="port:falseOutput" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the input token when the control is 
>> false.</configure></property>
>> <property name="port:trueOutput" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the input token when the control is 
>> true.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a Boolean token used to select which output port 
>> (trueOutput or falseOutput) to broadcast.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:54:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.BooleanSwitch">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:930:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#BooleanControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#BooleanControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[505.0, 185.0]">
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="Select2" class="ptolemy.actor.lib.Select">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Select  actor "selects" and outputs a token from among its 
>> input tokens. The actor accepts one or more values of any type via 
>> its input multiport and selects the value on the channel specified 
>> via the control port. The value of the selected channel is output 
>> each time the actor iterates.</p>

<p>Each time 
>> the actor iterates, it checks to see if a token is available on its 
>> control port. If so, the actor reads the value and uses it to 
>> determine which of its input channels to output next. If an input 
>> token is available on the specified channel, then that token is read 
>> and sent to the output. 
If the actor has never received a value 
>> on the control port, then the actor will read and output channel zero 
>> of the input port. If the value of the most recently received token 
>> on the control port is out of range (less than zero, or greater than 
>> or equal to the width of the input), then the actor will not fire 
>> (although it will continue to consume tokens on the control port). 
>> </p>

<p>The actor never discards input tokens. 
>> Note that in DE workflows, where this actor is commonly used, every 
>> time the actor receives a new "select" channel via the 
>> control port, the actor will output (at the next firing) all 
>> previously unread input tokens on the specified channel in the order 
>> in which they arrived.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that accepts tokens of any type.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the selected input 
>> channel.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts integer tokens that indicate which input channel to 
>> output (0, 1, 2, 3, etc). If the value is out of range (less than 
>> zero, or greater than or equal to the width of the input), then the 
>> actor will not fire.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:50:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Select">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:926:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[650.0, 180.0]">
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="aboveRange" 
>> class="ptolemy.actor.lib.logic.Comparator">
>>            <property name="comparison" 
>> class="ptolemy.kernel.util.StringAttribute" value="<">
>>            </property>
>>            <property name="tolerance" 
>> class="ptolemy.data.expr.Parameter" value="0.0">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> Comparator reads two values and compares them. The actor outputs a 
>> Boolean value (true or false) that indicates whether the comparison 
>> criteria were met or not.</p>

<p>Specify the 
>> type of comparison to perform with the comparison parameter. The 
>> following comparisons may be performed:</p>

<table 
>> border="1">
<tr><td>Comparison</td><td>Definition</td></tr>
<tr><td>></td><td>left 
>> is greater than right; the default 
>> comparison.</td></tr>
<tr><td>>=</td><td>left 
>> is greater than or equal to 
>> right</td></tr>
<tr><td>less 
>> than</td><td>left is less than 
>> right</td></tr>
<tr><td>less than or 
>> equal</td><td>left is less than or equal to 
>> right</td></tr>
<tr><td>==</td><td>left 
>> equals 
>> right</td></tr>
</table>

<p>The 
>> input ports are named "left" and "right" to 
>> indicate which side of the comparison operator their value appears 
>> on.</p>

<p>The tolerance parameter, which 
>> defaults to zero, defines an error tolerance. If the tolerance is 
>> greater than zero, the actor will output true when the specified 
>> comparison is not exactly satisfied, but rather is almost satisfied 
>> within the specified tolerance.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts a Boolean value (true or false) that 
>> indicates whether the comparison criteria were met or 
>> not.</configure></property>
>> <property name="port:right" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double(or any data type that can be losslessly 
>> converted to a double token) that will be used on the right side of 
>> the comparison operator.</configure></property>
>> <property name="port:left" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double (or any data type that can be losslessly 
>> converted to a double token) that will be used on the left side of 
>> the comparison operator.</configure></property>
>> <property name="prop:tolerance" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> tolerance for the comparison. If the tolerance is greater than zero, 
>> the actor will output true when the comparison is satisfied within 
>> the specified tolerance (i.e., the comparison need not be exactly 
>> satisfied). The value is a double that defaults to 
>> 0.0.</configure></property>
>> <property name="prop:comparison" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> comparison to perform. The default is greater 
>> than.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:235:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.logic.Comparator">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:939:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[430.0, 295.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:64:1">
>>            </property>
>>        </entity>
>>        <entity name="Boolean To Anything2" 
>> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>>            <property name="falseValue" 
>> class="ptolemy.data.expr.Parameter" value="0">
>>            </property>
>>            <property name="trueValue" 
>> class="ptolemy.data.expr.Parameter" value="1">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> BooleanToAnything actor converts a Boolean token (i.e., true or 
>> false) into any data type and value. </p>

<p>The 
>> actor reads a Boolean value and assigns a new value based on the 
>> specified conversion values. The actor outputs the value of the 
>> trueValue parameter if the Boolean input is true. The actor outputs 
>> the value of the falseValue parameter if the Boolean input is false. 
>> The type of the output matches that of the specified conversion 
>> values.
</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that receives a Boolean token.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted data. The actor will output 
>> the value of the falseValue parameter if the input value is false, or 
>> the value of the trueValue parameter if the input value is 
>> true.</configure></property>
>> <property name="prop:trueValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "true" input is read. 
>> </configure></property>
>> <property name="prop:falseValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "false" input is 
>> read.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:34:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:910:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[575.0, 295.0]">
>>            </property>
>>        </entity>
>>        <entity name="outsideRangeValue2" 
>> class="ptolemy.actor.lib.Const">
>>            <display name="outsideRangeValue"/>
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value="nil">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:233:6">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[590.0, 150.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <entity name="upperLimit" class="ptolemy.actor.lib.Const">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value="upperLimit">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:234:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[420.0, 385.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <entity name="Select3" class="ptolemy.actor.lib.Select">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Select  actor "selects" and outputs a token from among its 
>> input tokens. The actor accepts one or more values of any type via 
>> its input multiport and selects the value on the channel specified 
>> via the control port. The value of the selected channel is output 
>> each time the actor iterates.</p>

<p>Each time 
>> the actor iterates, it checks to see if a token is available on its 
>> control port. If so, the actor reads the value and uses it to 
>> determine which of its input channels to output next. If an input 
>> token is available on the specified channel, then that token is read 
>> and sent to the output. 
If the actor has never received a value 
>> on the control port, then the actor will read and output channel zero 
>> of the input port. If the value of the most recently received token 
>> on the control port is out of range (less than zero, or greater than 
>> or equal to the width of the input), then the actor will not fire 
>> (although it will continue to consume tokens on the control port). 
>> </p>

<p>The actor never discards input tokens. 
>> Note that in DE workflows, where this actor is commonly used, every 
>> time the actor receives a new "select" channel via the 
>> control port, the actor will output (at the next firing) all 
>> previously unread input tokens on the specified channel in the order 
>> in which they arrived.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that accepts tokens of any type.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the selected input 
>> channel.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts integer tokens that indicate which input channel to 
>> output (0, 1, 2, 3, etc). If the value is out of range (less than 
>> zero, or greater than or equal to the width of the input), then the 
>> actor will not fire.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:266:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Select">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:926:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[235.0, 455.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:50:1">
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="outsideRangeFlag" class="ptolemy.actor.lib.Const">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value=""C"">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:267:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[165.0, 440.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <entity name="outsideRangeFlag2" class="ptolemy.actor.lib.Const">
>>            <display name="outsideRangeFlag"/>
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value=""C"">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:267:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[550.0, 430.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <entity name="Select4" class="ptolemy.actor.lib.Select">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Select  actor "selects" and outputs a token from among its 
>> input tokens. The actor accepts one or more values of any type via 
>> its input multiport and selects the value on the channel specified 
>> via the control port. The value of the selected channel is output 
>> each time the actor iterates.</p>

<p>Each time 
>> the actor iterates, it checks to see if a token is available on its 
>> control port. If so, the actor reads the value and uses it to 
>> determine which of its input channels to output next. If an input 
>> token is available on the specified channel, then that token is read 
>> and sent to the output. 
If the actor has never received a value 
>> on the control port, then the actor will read and output channel zero 
>> of the input port. If the value of the most recently received token 
>> on the control port is out of range (less than zero, or greater than 
>> or equal to the width of the input), then the actor will not fire 
>> (although it will continue to consume tokens on the control port). 
>> </p>

<p>The actor never discards input tokens. 
>> Note that in DE workflows, where this actor is commonly used, every 
>> time the actor receives a new "select" channel via the 
>> control port, the actor will output (at the next firing) all 
>> previously unread input tokens on the specified channel in the order 
>> in which they arrived.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the selected input 
>> channel.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that accepts tokens of any type.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts integer tokens that indicate which input channel to 
>> output (0, 1, 2, 3, etc). If the value is out of range (less than 
>> zero, or greater than or equal to the width of the input), then the 
>> actor will not fire.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:266:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Select">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:926:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[645.0, 455.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:50:1">
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="outsideRangeValue" class="ptolemy.actor.lib.Const">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value="nil">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:233:6">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[265.0, 175.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="[205.0, 300.0]">
>>            </vertex>
>>        </relation>
>>        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="1">
>>            </property>
>>            <vertex name="vertex1" value="[395.0, 200.0]">
>>            </vertex>
>>        </relation>
>>        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="[535.0, 285.0]">
>>            </vertex>
>>        </relation>
>>        <relation name="relation13" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation10" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation11" 
>> class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="1">
>>            </property>
>>        </relation>
>>        <relation name="relation14" 
>> class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="[85.0, 215.0]">
>>            </vertex>
>>        </relation>
>>        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="[345.0, 310.0]">
>>            </vertex>
>>        </relation>
>>        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation15" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation12" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation16" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation17" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation18" 
>> class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="[690.0, 305.0]">
>>            </vertex>
>>        </relation>
>>        <relation name="relation" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <link port="flagIn" relation="relation15"/>
>>        <link port="flagOut" relation="relation"/>
>>        <link port="dataIn" relation="relation14"/>
>>        <link port="dataOut" relation="relation12"/>
>>        <link port="belowRange.left" relation="relation14"/>
>>        <link port="belowRange.right" relation="relation6"/>
>>        <link port="belowRange.output" relation="relation4"/>
>>        <link port="Boolean To Anything.input" relation="relation4"/>
>>        <link port="Boolean To Anything.output" relation="relation7"/>
>>        <link port="lowerLimit.output" relation="relation6"/>
>>        <link port="Boolean Switch.input" relation="relation14"/>
>>        <link port="Boolean Switch.control" relation="relation4"/>
>>        <link port="Boolean Switch.trueOutput" relation="relation3"/>
>>        <link port="Select.input" relation="relation5"/>
>>        <link port="Select.input" relation="relation3"/>
>>        <link port="Select.output" relation="relation8"/>
>>        <link port="Select.control" relation="relation7"/>
>>        <link port="Boolean Switch2.input" relation="relation8"/>
>>        <link port="Boolean Switch2.control" relation="relation9"/>
>>        <link port="Boolean Switch2.trueOutput" relation="relation11"/>
>>        <link port="Select2.input" relation="relation10"/>
>>        <link port="Select2.input" relation="relation11"/>
>>        <link port="Select2.output" relation="relation12"/>
>>        <link port="Select2.control" relation="relation18"/>
>>        <link port="aboveRange.left" relation="relation8"/>
>>        <link port="aboveRange.right" relation="relation13"/>
>>        <link port="aboveRange.output" relation="relation9"/>
>>        <link port="Boolean To Anything2.input" relation="relation9"/>
>>        <link port="Boolean To Anything2.output" relation="relation18"/>
>>        <link port="outsideRangeValue2.output" relation="relation10"/>
>>        <link port="upperLimit.output" relation="relation13"/>
>>        <link port="Select3.input" relation="relation2"/>
>>        <link port="Select3.input" relation="relation15"/>
>>        <link port="Select3.output" relation="relation17"/>
>>        <link port="Select3.control" relation="relation7"/>
>>        <link port="outsideRangeFlag.output" relation="relation2"/>
>>        <link port="outsideRangeFlag2.output" relation="relation16"/>
>>        <link port="Select4.input" relation="relation16"/>
>>        <link port="Select4.input" relation="relation17"/>
>>        <link port="Select4.output" relation="relation"/>
>>        <link port="Select4.control" relation="relation18"/>
>>        <link port="outsideRangeValue.output" relation="relation5"/>
>>    </entity>
>>    <entity name="monthSpecificRangeCheck" 
>> class="ptolemy.actor.TypedCompositeActor">
>>        <property name="_createdBy" 
>> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>>        </property>
>>        <property name="entityId" class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:238:144">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.TypedCompositeActor">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:449:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Actor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
>>        </property>
>>        <property name="semanticType22" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Workflow">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong 
>> Xiong</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A 
>> Composite actor is an aggregation of actors. It may have a local 
>> director that is responsible for executing the contained actors. A 
>> Composite actor with a local director is called an opaque actor. 
>> Composite actors do not require a local director. Composite actors 
>> with no local director "inherit" the director from the 
>> containing workflow and are called 
>> non-opaque.</p>

<p>To create a composite actor, 
>> drag and drop the Composite actor onto the Workflow canvas. 
>> Right-click the actor and select Open Actor from the drop-down menu. 
>> A new Kepler application window will open for designing the 
>> composite.</p></configure></property>
>> </property>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[475.0, 260.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:449:1">
>>        </property>
>>        <property name="_windowProperties" 
>> class="ptolemy.actor.gui.WindowPropertiesAttribute" 
>> value="{bounds={0, 0, 1288, 1002}, maximized=false}">
>>        </property>
>>        <property name="_vergilSize" 
>> class="ptolemy.actor.gui.SizeAttribute" value="[971, 840]">
>>        </property>
>>        <property name="_vergilZoomFactor" 
>> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>>        </property>
>>        <property name="_vergilCenter" 
>> class="ptolemy.data.expr.ExpertParameter" value="{485.5, 420.0}">
>>        </property>
>>        <port name="month" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[20.0, 185.0]">
>>            </property>
>>        </port>
>>        <port name="data" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[20.0, 460.0]">
>>            </property>
>>        </port>
>>        <port name="flagOut" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[875.0, 515.0]">
>>            </property>
>>        </port>
>>        <entity name="Lookup Table" 
>> class="ptolemy.actor.lib.LookupTable">
>>            <property name="table" class="ptolemy.data.expr.Parameter" 
>> value="{0, -37.4, -40.19, -33.16, -18.4, -7.67, -2.132, 2.302, 2.431, 
>> -5.869, -10.96, -25.26, -33.23}">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul 
>> Whitaker and Christopher Hylands</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> LookupTable actor reads an array of elements and "looks up" 
>> an element specified by a given index number. The specified element 
>> is output.</p>

<p>The first element in the array 
>> has an index of 0 (the second 1, and so on). The index must be an 
>> integer. If the index is out of range, the actor will output nothing. 
>> </p>

<p>The LookupTable actor is similar to the 
>> ArrayElement actor in function; however, the two actors specify 
>> arrays and index numbers in different ways. The LookupTable actor 
>> specifies an array with its table parameter and receives an index 
>> number via its input port. The ArrayElement actor receives an array 
>> via its input port and an index number via a 
>> parameter.</p>

</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts an array index number. The index must be an 
>> integer. If the index is out of range, the actor will output nothing. 
>> The first element in the array has an index of 0 (the second 1, and 
>> so on).</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the array element identified by the index 
>> number.</configure></property>
>> <property name="prop:table" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> array from which a value is "looked up" and output. The 
>> default value is {0, 1}. </configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:255:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.LookupTable">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:952:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#TableActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[170.0, 280.0]">
>>            </property>
>>            <property name="" class="ptolemy.vergil.basic.DocAttribute">
>>                <property name="description" 
>> class="ptolemy.kernel.util.StringAttribute" value="
<p>The 
>> LookupTable actor reads an array of elements and "looks up" 
>> an element specified by a given index number. The specified element 
>> is output.</p>

<p>The first element in the array 
>> has an index of 0 (the second 1, and so on). The index must be an 
>> integer. If the index is out of range, the actor will output nothing. 
>> </p>

<p>The LookupTable actor is similar to the 
>> ArrayElement actor in function; however, the two actors specify 
>> arrays and index numbers in different ways. The LookupTable actor 
>> specifies an array with its table parameter and receives an index 
>> number via its input port. The ArrayElement actor receives an array 
>> via its input port and an index number via a 
>> parameter.</p>

">
>>                </property>
>>                <property name="author" 
>> class="ptolemy.kernel.util.StringAttribute" value="Paul Whitaker and 
>> Christopher Hylands">
>>                </property>
>>                <property name="version" 
>> class="ptolemy.kernel.util.StringAttribute" value="null">
>>                </property>
>>                <property name="table (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="The array from which 
>> a value is "looked up" and output. The default value is {0, 
>> 1}. ">
>>                </property>
>>                <property name="input (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An input port that 
>> accepts an array index number. The index must be an integer. If the 
>> index is out of range, the actor will output nothing. The first 
>> element in the array has an index of 0 (the second 1, and so on).">
>>                </property>
>>                <property name="output (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An output port 
>> that broadcasts the array element identified by the index number.">
>>                </property>
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:77:1">
>>            </property>
>>        </entity>
>>        <entity name="Comparator" 
>> class="ptolemy.actor.lib.logic.Comparator">
>>            <property name="comparison" 
>> class="ptolemy.kernel.util.StringAttribute" value=">">
>>            </property>
>>            <property name="tolerance" 
>> class="ptolemy.data.expr.Parameter" value="0.0">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> Comparator reads two values and compares them. The actor outputs a 
>> Boolean value (true or false) that indicates whether the comparison 
>> criteria were met or not.</p>

<p>Specify the 
>> type of comparison to perform with the comparison parameter. The 
>> following comparisons may be performed:</p>

<table 
>> border="1">
<tr><td>Comparison</td><td>Definition</td></tr>
<tr><td>></td><td>left 
>> is greater than right; the default 
>> comparison.</td></tr>
<tr><td>>=</td><td>left 
>> is greater than or equal to 
>> right</td></tr>
<tr><td>less 
>> than</td><td>left is less than 
>> right</td></tr>
<tr><td>less than or 
>> equal</td><td>left is less than or equal to 
>> right</td></tr>
<tr><td>==</td><td>left 
>> equals 
>> right</td></tr>
</table>

<p>The 
>> input ports are named "left" and "right" to 
>> indicate which side of the comparison operator their value appears 
>> on.</p>

<p>The tolerance parameter, which 
>> defaults to zero, defines an error tolerance. If the tolerance is 
>> greater than zero, the actor will output true when the specified 
>> comparison is not exactly satisfied, but rather is almost satisfied 
>> within the specified tolerance.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts a Boolean value (true or false) that 
>> indicates whether the comparison criteria were met or 
>> not.</configure></property>
>> <property name="port:right" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double(or any data type that can be losslessly 
>> converted to a double token) that will be used on the right side of 
>> the comparison operator.</configure></property>
>> <property name="port:left" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double (or any data type that can be losslessly 
>> converted to a double token) that will be used on the left side of 
>> the comparison operator.</configure></property>
>> <property name="prop:tolerance" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> tolerance for the comparison. If the tolerance is greater than zero, 
>> the actor will output true when the comparison is satisfied within 
>> the specified tolerance (i.e., the comparison need not be exactly 
>> satisfied). The value is a double that defaults to 
>> 0.0.</configure></property>
>> <property name="prop:comparison" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> comparison to perform. The default is greater 
>> than.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:257:2">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.logic.Comparator">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:939:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[175.0, 350.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:64:1">
>>            </property>
>>        </entity>
>>        <entity name="Boolean To Anything" 
>> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>>            <property name="falseValue" 
>> class="ptolemy.data.expr.Parameter" value="0">
>>            </property>
>>            <property name="trueValue" 
>> class="ptolemy.data.expr.Parameter" value="1">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> BooleanToAnything actor converts a Boolean token (i.e., true or 
>> false) into any data type and value. </p>

<p>The 
>> actor reads a Boolean value and assigns a new value based on the 
>> specified conversion values. The actor outputs the value of the 
>> trueValue parameter if the Boolean input is true. The actor outputs 
>> the value of the falseValue parameter if the Boolean input is false. 
>> The type of the output matches that of the specified conversion 
>> values.
</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that receives a Boolean token.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted data. The actor will output 
>> the value of the falseValue parameter if the input value is false, or 
>> the value of the trueValue parameter if the input value is 
>> true.</configure></property>
>> <property name="prop:trueValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "true" input is read. 
>> </configure></property>
>> <property name="prop:falseValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "false" input is 
>> read.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:34:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:910:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[280.0, 410.0]">
>>            </property>
>>        </entity>
>>        <entity name="Select" class="ptolemy.actor.lib.Select">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Select  actor "selects" and outputs a token from among its 
>> input tokens. The actor accepts one or more values of any type via 
>> its input multiport and selects the value on the channel specified 
>> via the control port. The value of the selected channel is output 
>> each time the actor iterates.</p>

<p>Each time 
>> the actor iterates, it checks to see if a token is available on its 
>> control port. If so, the actor reads the value and uses it to 
>> determine which of its input channels to output next. If an input 
>> token is available on the specified channel, then that token is read 
>> and sent to the output. 
If the actor has never received a value 
>> on the control port, then the actor will read and output channel zero 
>> of the input port. If the value of the most recently received token 
>> on the control port is out of range (less than zero, or greater than 
>> or equal to the width of the input), then the actor will not fire 
>> (although it will continue to consume tokens on the control port). 
>> </p>

<p>The actor never discards input tokens. 
>> Note that in DE workflows, where this actor is commonly used, every 
>> time the actor receives a new "select" channel via the 
>> control port, the actor will output (at the next firing) all 
>> previously unread input tokens on the specified channel in the order 
>> in which they arrived.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that accepts tokens of any type.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the selected input 
>> channel.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts integer tokens that indicate which input channel to 
>> output (0, 1, 2, 3, etc). If the value is out of range (less than 
>> zero, or greater than or equal to the width of the input), then the 
>> actor will not fire.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:260:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Select">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:926:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[320.0, 500.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:50:1">
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="trueFlag" class="ptolemy.actor.lib.Const">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value=""H"">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:261:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[255.0, 540.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <entity name="falseFlag" class="ptolemy.actor.lib.Const">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value="nil">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:262:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[255.0, 490.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <entity name="Lookup Table2" 
>> class="ptolemy.actor.lib.LookupTable">
>>            <property name="table" class="ptolemy.data.expr.Parameter" 
>> value="{0, 8.61, 14.83, 28, 28.3, 30.23, 34.95, 35.41, 36.48, 33.55, 
>> 27.23, 21.33, 14.91}">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul 
>> Whitaker and Christopher Hylands</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> LookupTable actor reads an array of elements and "looks up" 
>> an element specified by a given index number. The specified element 
>> is output.</p>

<p>The first element in the array 
>> has an index of 0 (the second 1, and so on). The index must be an 
>> integer. If the index is out of range, the actor will output nothing. 
>> </p>

<p>The LookupTable actor is similar to the 
>> ArrayElement actor in function; however, the two actors specify 
>> arrays and index numbers in different ways. The LookupTable actor 
>> specifies an array with its table parameter and receives an index 
>> number via its input port. The ArrayElement actor receives an array 
>> via its input port and an index number via a 
>> parameter.</p>

</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the array element identified by the index 
>> number.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts an array index number. The index must be an 
>> integer. If the index is out of range, the actor will output nothing. 
>> The first element in the array has an index of 0 (the second 1, and 
>> so on).</configure></property>
>> <property name="prop:table" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> array from which a value is "looked up" and output. The 
>> default value is {0, 1}. </configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:263:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.LookupTable">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:952:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#TableActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[465.0, 275.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:77:1">
>>            </property>
>>        </entity>
>>        <entity name="Comparator2" 
>> class="ptolemy.actor.lib.logic.Comparator">
>>            <property name="comparison" 
>> class="ptolemy.kernel.util.StringAttribute" value="<">
>>            </property>
>>            <property name="tolerance" 
>> class="ptolemy.data.expr.Parameter" value="0.0">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> Comparator reads two values and compares them. The actor outputs a 
>> Boolean value (true or false) that indicates whether the comparison 
>> criteria were met or not.</p>

<p>Specify the 
>> type of comparison to perform with the comparison parameter. The 
>> following comparisons may be performed:</p>

<table 
>> border="1">
<tr><td>Comparison</td><td>Definition</td></tr>
<tr><td>></td><td>left 
>> is greater than right; the default 
>> comparison.</td></tr>
<tr><td>>=</td><td>left 
>> is greater than or equal to 
>> right</td></tr>
<tr><td>less 
>> than</td><td>left is less than 
>> right</td></tr>
<tr><td>less than or 
>> equal</td><td>left is less than or equal to 
>> right</td></tr>
<tr><td>==</td><td>left 
>> equals 
>> right</td></tr>
</table>

<p>The 
>> input ports are named "left" and "right" to 
>> indicate which side of the comparison operator their value appears 
>> on.</p>

<p>The tolerance parameter, which 
>> defaults to zero, defines an error tolerance. If the tolerance is 
>> greater than zero, the actor will output true when the specified 
>> comparison is not exactly satisfied, but rather is almost satisfied 
>> within the specified tolerance.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts a Boolean value (true or false) that 
>> indicates whether the comparison criteria were met or 
>> not.</configure></property>
>> <property name="port:right" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double(or any data type that can be losslessly 
>> converted to a double token) that will be used on the right side of 
>> the comparison operator.</configure></property>
>> <property name="port:left" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a double (or any data type that can be losslessly 
>> converted to a double token) that will be used on the left side of 
>> the comparison operator.</configure></property>
>> <property name="prop:tolerance" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> tolerance for the comparison. If the tolerance is greater than zero, 
>> the actor will output true when the comparison is satisfied within 
>> the specified tolerance (i.e., the comparison need not be exactly 
>> satisfied). The value is a double that defaults to 
>> 0.0.</configure></property>
>> <property name="prop:comparison" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> comparison to perform. The default is greater 
>> than.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:268:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.logic.Comparator">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:939:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[470.0, 350.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:64:1">
>>            </property>
>>        </entity>
>>        <entity name="Boolean To Anything2" 
>> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>>            <property name="falseValue" 
>> class="ptolemy.data.expr.Parameter" value="0">
>>            </property>
>>            <property name="trueValue" 
>> class="ptolemy.data.expr.Parameter" value="1">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> BooleanToAnything actor converts a Boolean token (i.e., true or 
>> false) into any data type and value. </p>

<p>The 
>> actor reads a Boolean value and assigns a new value based on the 
>> specified conversion values. The actor outputs the value of the 
>> trueValue parameter if the Boolean input is true. The actor outputs 
>> the value of the falseValue parameter if the Boolean input is false. 
>> The type of the output matches that of the specified conversion 
>> values.
</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that receives a Boolean token.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted data. The actor will output 
>> the value of the falseValue parameter if the input value is false, or 
>> the value of the trueValue parameter if the input value is 
>> true.</configure></property>
>> <property name="prop:trueValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "true" input is read. 
>> </configure></property>
>> <property name="prop:falseValue" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value to output when a "false" input is 
>> read.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:34:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:910:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{510, 425}">
>>            </property>
>>        </entity>
>>        <entity name="Select2" class="ptolemy.actor.lib.Select">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward 
>> A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Select  actor "selects" and outputs a token from among its 
>> input tokens. The actor accepts one or more values of any type via 
>> its input multiport and selects the value on the channel specified 
>> via the control port. The value of the selected channel is output 
>> each time the actor iterates.</p>

<p>Each time 
>> the actor iterates, it checks to see if a token is available on its 
>> control port. If so, the actor reads the value and uses it to 
>> determine which of its input channels to output next. If an input 
>> token is available on the specified channel, then that token is read 
>> and sent to the output. 
If the actor has never received a value 
>> on the control port, then the actor will read and output channel zero 
>> of the input port. If the value of the most recently received token 
>> on the control port is out of range (less than zero, or greater than 
>> or equal to the width of the input), then the actor will not fire 
>> (although it will continue to consume tokens on the control port). 
>> </p>

<p>The actor never discards input tokens. 
>> Note that in DE workflows, where this actor is commonly used, every 
>> time the actor receives a new "select" channel via the 
>> control port, the actor will output (at the next firing) all 
>> previously unread input tokens on the specified channel in the order 
>> in which they arrived.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that accepts tokens of any type.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the selected input 
>> channel.</configure></property>
>> <property name="port:control" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts integer tokens that indicate which input channel to 
>> output (0, 1, 2, 3, etc). If the value is out of range (less than 
>> zero, or greater than or equal to the width of the input), then the 
>> actor will not fire.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:264:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Select">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:926:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ControlActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#WorkflowControl">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{530, 510}">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:50:1">
>>            </property>
>>            <port name="control" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>                <property name="_cardinal" 
>> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>>                </property>
>>            </port>
>>        </entity>
>>        <entity name="trueFlag2" class="ptolemy.actor.lib.Const">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="value" class="ptolemy.data.expr.Parameter" 
>> value=""H"">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:261:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>            </property>
>>            <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[480.0, 565.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>            </property>
>>        </entity>
>>        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation10" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation11" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation13" 
>> class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="{100.0, 405.0}">
>>            </vertex>
>>        </relation>
>>        <relation name="relation14" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation15" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation16" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation17" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="[165.0, 230.0]">
>>            </vertex>
>>        </relation>
>>        <link port="month" relation="relation2"/>
>>        <link port="data" relation="relation13"/>
>>        <link port="flagOut" relation="relation17"/>
>>        <link port="Lookup Table.input" relation="relation2"/>
>>        <link port="Lookup Table.output" relation="relation7"/>
>>        <link port="Comparator.left" relation="relation7"/>
>>        <link port="Comparator.right" relation="relation13"/>
>>        <link port="Comparator.output" relation="relation8"/>
>>        <link port="Boolean To Anything.input" relation="relation8"/>
>>        <link port="Boolean To Anything.output" relation="relation9"/>
>>        <link port="Select.input" relation="relation10"/>
>>        <link port="Select.input" relation="relation11"/>
>>        <link port="Select.output" relation="relation14"/>
>>        <link port="Select.control" relation="relation9"/>
>>        <link port="trueFlag.output" relation="relation11"/>
>>        <link port="falseFlag.output" relation="relation10"/>
>>        <link port="Lookup Table2.input" relation="relation2"/>
>>        <link port="Lookup Table2.output" relation="relation4"/>
>>        <link port="Comparator2.left" relation="relation4"/>
>>        <link port="Comparator2.right" relation="relation13"/>
>>        <link port="Comparator2.output" relation="relation6"/>
>>        <link port="Boolean To Anything2.input" relation="relation6"/>
>>        <link port="Boolean To Anything2.output" relation="relation15"/>
>>        <link port="Select2.input" relation="relation14"/>
>>        <link port="Select2.input" relation="relation16"/>
>>        <link port="Select2.output" relation="relation17"/>
>>        <link port="Select2.control" relation="relation15"/>
>>        <link port="trueFlag2.output" relation="relation16"/>
>>    </entity>
>>    <entity name="Record Assembler" 
>> class="ptolemy.actor.lib.RecordAssembler">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong 
>> Xiong</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The 
>> RecordAssembler actor receives tokens of various types on 
>> user-defined input ports and assembles those tokens into a record, 
>> which it outputs. The actor reads and converts one token from each 
>> port every time it fires.</p>

<p>A record is a 
>> composite data type consisting of one or more elements. Each element 
>> is named and can have a distinct type. For example, {number=1, 
>> name="dog"} is a record containing two elements. The first 
>> element, named "number", contains an integer value. The 
>> second element, named "name", contains a string value. 
>> </p>

<p>The name of each record element 
>> generated by the actor is the name of the input port from which the 
>> value was received. An actor customized to use three input ports 
>> named "day", "week", "month" could 
>> output the following record {day="Monday", week=5, 
>> month=12}.</p>

</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the generated records. 
>> </configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:273:14">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.RecordAssembler">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:923:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#RecordActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStructureOperation">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[715.0, 225.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:47:1">
>>        </property>
>>        <port name="sampledate" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="general">
>>            </property>
>>        </port>
>>        <port name="year4" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="int">
>>            </property>
>>        </port>
>>        <port name="station_id" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="int">
>>            </property>
>>        </port>
>>        <port name="month" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="int">
>>            </property>
>>        </port>
>>        <port name="daynum" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="int">
>>            </property>
>>        </port>
>>        <port name="sample_time" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="int">
>>            </property>
>>        </port>
>>        <port name="air_temp" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="general">
>>            </property>
>>        </port>
>>        <port name="flag_air_temp" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_type" class="ptolemy.actor.TypeAttribute" 
>> value="string">
>>            </property>
>>        </port>
>>    </entity>
>>    <entity name="disassembleDate" 
>> class="ptolemy.actor.TypedCompositeActor">
>>        <property name="_createdBy" 
>> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>>        </property>
>>        <property name="entityId" class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:274:51">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.TypedCompositeActor">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:449:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#Actor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
>>        </property>
>>        <property name="semanticType22" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Workflow">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong 
>> Xiong</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A 
>> Composite actor is an aggregation of actors. It may have a local 
>> director that is responsible for executing the contained actors. A 
>> Composite actor with a local director is called an opaque actor. 
>> Composite actors do not require a local director. Composite actors 
>> with no local director "inherit" the director from the 
>> containing workflow and are called 
>> non-opaque.</p>

<p>To create a composite actor, 
>> drag and drop the Composite actor onto the Workflow canvas. 
>> Right-click the actor and select Open Actor from the drop-down menu. 
>> A new Kepler application window will open for designing the 
>> composite.</p></configure></property>
>> </property>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[435.0, 135.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:449:1">
>>        </property>
>>        <property name="_windowProperties" 
>> class="ptolemy.actor.gui.WindowPropertiesAttribute" 
>> value="{bounds={0, 0, 1288, 1002}, maximized=false}">
>>        </property>
>>        <property name="_vergilSize" 
>> class="ptolemy.actor.gui.SizeAttribute" value="[971, 840]">
>>        </property>
>>        <property name="_vergilZoomFactor" 
>> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>>        </property>
>>        <property name="_vergilCenter" 
>> class="ptolemy.data.expr.ExpertParameter" value="{485.5, 420.0}">
>>        </property>
>>        <port name="timestamps" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{20.0, 200.0}">
>>            </property>
>>        </port>
>>        <port name="year" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[675.0, 170.0]">
>>            </property>
>>        </port>
>>        <port name="month" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[675.0, 230.0]">
>>            </property>
>>        </port>
>>        <port name="daynum" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[675.0, 285.0]">
>>            </property>
>>        </port>
>>        <port name="sample_time" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[680.0, 350.0]">
>>            </property>
>>        </port>
>>        <port name="sample_date" class="ptolemy.actor.TypedIOPort">
>>            <property name="output"/>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[685.0, 410.0]">
>>            </property>
>>        </port>
>>        <entity name="DateToString" class="org.kepler.date.DateToString">
>>            <property name="format" 
>> class="ptolemy.actor.parameters.PortParameter" value="yyyy">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel 
>> Crawl</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert 
>> a date token to a string using a specific format. See
   
>> java.text.SimpleDateFormat for formatting syntax.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> formatted string of the date and time.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date 
>> and time.</configure></property>
>> <property name="prop:format" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> format of the string. See java.text.SimpleDateFormat for formatting 
>> syntax.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:253:2">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.kepler.date.DateToString">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:543:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Time">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[390.0, 135.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:543:1">
>>            </property>
>>        </entity>
>>        <entity name="SecondsToMilliseconds" 
>> class="ptolemy.actor.lib.Expression">
>>            <property name="expression" 
>> class="ptolemy.kernel.util.StringAttribute" value="x*1000">
>>                <property name="_hide" 
>> class="ptolemy.data.expr.Parameter" value="true">
>>                </property>
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun 
>> Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Expression actor evaluates a specified expression (e.g., an addition 
>> or multiplication operation), which may reference the values of 
>> user-specified input ports, the current time, or the actor's 
>> iteration count. The actor outputs the value of the evaluated 
>> expression. </p>

<p>Expressions are specified in 
>> the Ptolemy expression language via the expression parameter. For 
>> more information about the expression language, see 
>> http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. 
>> </p>

<p>By default, the expression parameter is 
>> empty, and attempting to execute the actor without first specifying 
>> an expression generates an error. Expressions can refer to the values 
>> of inputs by the port name; to the current time by the identifier 
>> "time"; and to the current iteration count by the 
>> identifier "iteration." </p>

<p>Input 
>> ports are created by the user and correspond to variables used in the 
>> specified expression. Currently, the Expression actor does not 
>> support input multiports. The actor requires all of its inputs to be 
>> present. If inputs are not all present, then the actor will generate 
>> an error. </p>

<p>Note: the Expression actor can 
>> be used instead of many of the arithmetic actors, such as 
>> AddSubtract, MultiplyDivide, and TrigFunction. However, those actors 
>> will be usually be more efficient, and sometimes more convenient to 
>> use.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the value of the evaluated expression. 
>> The actor automatically determines the type based on the type of the 
>> input.</configure></property>
>> <property name="prop:expression" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> expression to evaluate. Expressions are specified in the Ptolemy 
>> expression language. For more information about the expression 
>> language, see 
>> http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. 
>> By default, the parameter is empty, and attempting to execute the 
>> actor without first specifying an expression generates an error. 
>> Expressions can refer to the values of inputs by the port name; to 
>> the current time by the identifier "time"; and to the 
>> current iteration count by the identifier 
>> "iteration."</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:244:2">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Expression">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:950:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#MathOperationActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
>>            </property>
>>            <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>                <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="expression">
>>                </property>
>>                <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="60">
>>                </property>
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[105.0, 65.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:75:1">
>>            </property>
>>            <port name="x" class="ptolemy.actor.TypedIOPort">
>>                <property name="input"/>
>>            </port>
>>        </entity>
>>        <entity name="CreateDate" class="org.kepler.date.CreateDate">
>>            <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>            </property>
>>            <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>            </property>
>>            <property name="format" 
>> class="ptolemy.actor.parameters.PortParameter" value="milliseconds 
>> since epoch">
>>            </property>
>>            <property name="input" 
>> class="ptolemy.actor.parameters.PortParameter" value="">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel 
>> Crawl</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Create 
>> a date token. If a date string is not given on 
>> <i>input</i>, 
   the current date and time is 
>> used.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date 
>> and time token.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If 
>> connected, the actor will not run until a token is 
>> available.</configure></property>
>> <property name="prop:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A string 
>> date and time. If not used, the current date and time  is 
>> used.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a 
>> positive integer, then the number of iterations before the  actor 
>> indicates to the scheduler that it is finished by returning  false in 
>> its postfire() method.</configure></property>
>> <property name="prop:format" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> format of the input date and time. See   java.text.SimpleDateFormat 
>> for the syntax.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:245:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.kepler.date.CreateDate">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:541:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Time">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[225.0, 50.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:541:1">
>>            </property>
>>            <property name="" class="ptolemy.vergil.basic.DocAttribute">
>>                <property name="description" 
>> class="ptolemy.kernel.util.StringAttribute" value="
Create a date 
>> token. If a date string is not given on <i>input</i>, 
>> 
   the current date and time is used.">
>>                </property>
>>                <property name="author" 
>> class="ptolemy.kernel.util.StringAttribute" value="Daniel Crawl">
>>                </property>
>>                <property name="version" 
>> class="ptolemy.kernel.util.StringAttribute" value="null">
>>                </property>
>>                <property name="firingCountLimit (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="If a positive 
>> integer, then the number of iterations before the  actor indicates to 
>> the scheduler that it is finished by returning  false in its 
>> postfire() method.">
>>                </property>
>>                <property name="output (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="The date and time 
>> token.">
>>                </property>
>>                <property name="trigger (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="If connected, the 
>> actor will not run until a token is available.">
>>                </property>
>>                <property name="input (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="A string date and 
>> time. If not used, the current date and time  is used.">
>>                </property>
>>                <property name="format (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="The format of the 
>> input date and time. See   java.text.SimpleDateFormat for the syntax.">
>>                </property>
>>            </property>
>>        </entity>
>>        <entity name="String To Int" 
>> class="org.resurgence.actor.StringToInt">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
>> StringToInt actor reads a string, converts it to an integer, and 
>> outputs the result. </p>

<p>The actor creates 
>> the integer by placing one byte (i.e., one character) of the string 
>> into the least significant byte of an integer. Typically, this byte 
>> is the ASCII code of the 
>> character.</p>
</configure></property>
>> <property name="port:string" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a string.</configure></property>
>> <property name="port:integer" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted string as an 
>> integer.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:294:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.resurgence.actor.StringToInt">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1119:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStringOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[540.0, 135.0]">
>>            </property>
>>        </entity>
>>        <entity name="DateToString2" 
>> class="org.kepler.date.DateToString">
>>            <property name="format" 
>> class="ptolemy.actor.parameters.PortParameter" value="M">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel 
>> Crawl</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert 
>> a date token to a string using a specific format. See
   
>> java.text.SimpleDateFormat for formatting syntax.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date 
>> and time.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> formatted string of the date and time.</configure></property>
>> <property name="prop:format" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> format of the string. See java.text.SimpleDateFormat for formatting 
>> syntax.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:253:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.kepler.date.DateToString">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:543:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Time">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[390.0, 205.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:543:1">
>>            </property>
>>        </entity>
>>        <entity name="DateToString3" 
>> class="org.kepler.date.DateToString">
>>            <property name="format" 
>> class="ptolemy.actor.parameters.PortParameter" value="D">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel 
>> Crawl</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert 
>> a date token to a string using a specific format. See
   
>> java.text.SimpleDateFormat for formatting syntax.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date 
>> and time.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> formatted string of the date and time.</configure></property>
>> <property name="prop:format" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> format of the string. See java.text.SimpleDateFormat for formatting 
>> syntax.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:253:3">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.kepler.date.DateToString">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:543:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Time">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[390.0, 270.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:543:1">
>>            </property>
>>        </entity>
>>        <entity name="DateToString4" 
>> class="org.kepler.date.DateToString">
>>            <property name="format" 
>> class="ptolemy.actor.parameters.PortParameter" value="HHmm">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel 
>> Crawl</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert 
>> a date token to a string using a specific format. See
   
>> java.text.SimpleDateFormat for formatting syntax.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date 
>> and time.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> formatted string of the date and time.</configure></property>
>> <property name="prop:format" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> format of the string. See java.text.SimpleDateFormat for formatting 
>> syntax.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:253:4">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.kepler.date.DateToString">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:543:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Time">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[390.0, 340.0]">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:543:1">
>>            </property>
>>        </entity>
>>        <entity name="String To Int2" 
>> class="org.resurgence.actor.StringToInt">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
>> StringToInt actor reads a string, converts it to an integer, and 
>> outputs the result. </p>

<p>The actor creates 
>> the integer by placing one byte (i.e., one character) of the string 
>> into the least significant byte of an integer. Typically, this byte 
>> is the ASCII code of the 
>> character.</p>
</configure></property>
>> <property name="port:integer" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted string as an 
>> integer.</configure></property>
>> <property name="port:string" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a string.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:294:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.resurgence.actor.StringToInt">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1119:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStringOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[540.0, 205.0]">
>>            </property>
>>        </entity>
>>        <entity name="String To Int3" 
>> class="org.resurgence.actor.StringToInt">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
>> StringToInt actor reads a string, converts it to an integer, and 
>> outputs the result. </p>

<p>The actor creates 
>> the integer by placing one byte (i.e., one character) of the string 
>> into the least significant byte of an integer. Typically, this byte 
>> is the ASCII code of the 
>> character.</p>
</configure></property>
>> <property name="port:integer" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted string as an 
>> integer.</configure></property>
>> <property name="port:string" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a string.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:294:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.resurgence.actor.StringToInt">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1119:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStringOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[545.0, 270.0]">
>>            </property>
>>        </entity>
>>        <entity name="String To Int4" 
>> class="org.resurgence.actor.StringToInt">
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke 
>> Sudholt</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
>> StringToInt actor reads a string, converts it to an integer, and 
>> outputs the result. </p>

<p>The actor creates 
>> the integer by placing one byte (i.e., one character) of the string 
>> into the least significant byte of an integer. Typically, this byte 
>> is the ASCII code of the 
>> character.</p>
</configure></property>
>> <property name="port:integer" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the converted string as an 
>> integer.</configure></property>
>> <property name="port:string" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a string.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:294:1">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.resurgence.actor.StringToInt">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1119:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConversionActor">
>>            </property>
>>            <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DataStringOperation">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[545.0, 340.0]">
>>            </property>
>>        </entity>
>>        <entity name="DateToString5" 
>> class="org.kepler.date.DateToString">
>>            <property name="format" 
>> class="ptolemy.actor.parameters.PortParameter" value="yyyy-MM-dd 
>> HH:mm:ss">
>>            </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel 
>> Crawl</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert 
>> a date token to a string using a specific format. See
   
>> java.text.SimpleDateFormat for formatting syntax.</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> formatted string of the date and time.</configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date 
>> and time.</configure></property>
>> <property name="prop:format" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> format of the string. See java.text.SimpleDateFormat for formatting 
>> syntax.</configure></property>
>> </property>            <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:253:20">
>>            </property>
>>            <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.kepler.date.DateToString">
>>                <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:543:1">
>>                </property>
>>            </property>
>>            <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Time">
>>            </property>
>>            <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{390.0, 410.0}">
>>            </property>
>>            <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:543:1">
>>            </property>
>>        </entity>
>>        <relation name="relation" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
>>            <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>            </property>
>>            <vertex name="vertex1" value="{310.0, 95.0}">
>>            </vertex>
>>        </relation>
>>        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation10" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation11" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <relation name="relation12" 
>> class="ptolemy.actor.TypedIORelation">
>>        </relation>
>>        <link port="timestamps" relation="relation"/>
>>        <link port="year" relation="relation5"/>
>>        <link port="month" relation="relation7"/>
>>        <link port="daynum" relation="relation9"/>
>>        <link port="sample_time" relation="relation11"/>
>>        <link port="sample_date" relation="relation12"/>
>>        <link port="DateToString.input" relation="relation4"/>
>>        <link port="DateToString.output" relation="relation3"/>
>>        <link port="SecondsToMilliseconds.output" relation="relation2"/>
>>        <link port="SecondsToMilliseconds.x" relation="relation"/>
>>        <link port="CreateDate.output" relation="relation4"/>
>>        <link port="CreateDate.input" relation="relation2"/>
>>        <link port="String To Int.string" relation="relation3"/>
>>        <link port="String To Int.integer" relation="relation5"/>
>>        <link port="DateToString2.input" relation="relation4"/>
>>        <link port="DateToString2.output" relation="relation6"/>
>>        <link port="DateToString3.input" relation="relation4"/>
>>        <link port="DateToString3.output" relation="relation8"/>
>>        <link port="DateToString4.input" relation="relation4"/>
>>        <link port="DateToString4.output" relation="relation10"/>
>>        <link port="String To Int2.string" relation="relation6"/>
>>        <link port="String To Int2.integer" relation="relation7"/>
>>        <link port="String To Int3.string" relation="relation8"/>
>>        <link port="String To Int3.integer" relation="relation9"/>
>>        <link port="String To Int4.string" relation="relation10"/>
>>        <link port="String To Int4.integer" relation="relation11"/>
>>        <link port="DateToString5.input" relation="relation4"/>
>>        <link port="DateToString5.output" relation="relation12"/>
>>    </entity>
>>    <entity name="Constant" class="ptolemy.actor.lib.Const">
>>        <property name="firingCountLimit" 
>> class="ptolemy.data.expr.Parameter" value="NONE">
>>        </property>
>>        <property name="NONE" class="ptolemy.data.expr.Parameter" 
>> value="0">
>>        </property>
>>        <property name="value" class="ptolemy.data.expr.Parameter" 
>> value="2702">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Constant actor outputs a constant, which is specified by the value 
>> parameter. By default, the actor outputs the integer 
>> 1.</p>

<p>The actor can be used to output other 
>> types of values, e.g., a string (such as "Hello") or a 
>> double (such as 1.2). The actor'
s output type matches the type 
>> of the specified value.</p>

<p>NOTE: If using a 
>> PN Director, the 'firingCountLimit' parameter is often set to a 
>> finite integer (e.g. '1') so that the workflow will terminate. 
>> </p>
</configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the specified constant. By default, the 
>> output is 1.</configure></property>
>> <property name="port:trigger" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that has no declared type (in other words, the port can 
>> accept any data type: double, int, array, etc.) If the port is 
>> connected, the actor will not fire until the trigger port receives an 
>> input token. Connecting the port is optional, but useful when 
>> scheduling the actor to perform at a certain 
>> time.</configure></property>
>> <property name="prop:firingCountLimit" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> limit on the number of times the actor will fire. The default value 
>> is 'NONE', meaning there is no limit on the number of time the 
>> constant will be provided to the output port. Any integer can be 
>> provided as a value for this parameter.</configure></property>
>> <property name="prop:value" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> value produced by the Constant actor. By default, the value is the 
>> integer token 1. The value can be set to another type, e.g., a string 
>> (such as "Hello") or a double (such as 1.2). The  output 
>> type matches the type of the value specified 
>> here.</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:276:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Const">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:877:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#ConstantActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#Constant">
>>        </property>
>>        <property name="kar" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:kar:57:1">
>>        </property>
>>        <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>            <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="value">
>>            </property>
>>            <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>            </property>
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{655, 225}">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:1:1">
>>        </property>
>>    </entity>
>>    <entity name="Open Database Connection" 
>> class="org.geon.OpenDBConnection">
>>        <property name="databaseFormat" 
>> class="ptolemy.data.expr.StringParameter" value="MySQL">
>>            <display name="database format"/>
>>        </property>
>>        <property name="databaseURL" 
>> class="ptolemy.data.expr.StringParameter" 
>> value="jdbc:mysql://localhost:3306/dbmaker">
>>        </property>
>>        <property name="username" 
>> class="ptolemy.data.expr.StringParameter" value="">
>>        </property>
>>        <property name="password" 
>> class="ptolemy.data.expr.StringParameter" value="">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>efrat 
>> jaeger</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> OpenDatabaseConnection actor opens a database connection using the 
>> specified database format and URL, username, and password. Once a  
>> database connection has been established, the actor outputs a 
>> reference to the connection. Actors downstream in the workflow can 
>> use this reference to access the 
>> database.</p></configure></property>
>> <property name="port:dbcon" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts a reference to the established database 
>> connection. Other actors can use this reference to interact with the 
>> database.</configure></property>
>> <property name="prop:password" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Database 
>> password.</configure></property>
>> <property name="prop:databaseFormat" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The type 
>> of database to access (e.g. Oracle, MySQL, etc)</configure></property>
>> <property name="prop:databaseURL" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> location of the database (e.g. 
>> jdbc:db2://compute1.sdsc.geongrid.org:50000/testpgap)</configure></property> 
>>
>> <property name="prop:username" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Database 
>> user name.</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:277:8">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.geon.OpenDBConnection">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:1013:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#DatabaseExternalInputActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DatabaseInputFunction">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[710.0, 100.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:155:1">
>>        </property>
>>    </entity>
>>    <entity name="Database Writer" class="org.sdm.spa.DatabaseWriter">
>>        <property name="table" 
>> class="ptolemy.actor.parameters.PortParameter" 
>> value="crystal_bog_buoy_hi_res">
>>        </property>
>>        <property name="autoIncColumnName" 
>> class="ptolemy.actor.parameters.PortParameter" value="record_id">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yang 
>> Zhao, Daniel Crawl</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> DatabaseWriter actor performs database updates against an open 
>> database and outputs the number of rows 
>> inserted.</p>

<p>Use the OpenDatabaseConnection 
>> actor to establish a database connection and generate a reference to 
>> that connection. The reference is passed to the DatabaseWriter actor 
>> via the dbcon port.</p>

<p>An update is passed 
>> to the actor via the update port or 
>> parameter.</p>

</configure></property>
>> <property name="port:result" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts how many rows were sucessfully 
>> updated.</configure></property>
>> <property name="port:dbcon" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> port that accepts a reference to an established database connection. 
>> The OpenDatabaseConnection actor can be used to generate this 
>> reference.</configure></property>
>> <property name="prop:query" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input 
>> update string. Updates can be specified via the query port or query 
>> parameter.</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:278:2">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="org.sdm.spa.DatabaseWriter">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:998:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#DatabaseExternalInputActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#DatabaseInputFunction">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="{850, 170}">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:518:1">
>>        </property>
>>        <property name="" class="ptolemy.vergil.basic.DocAttribute">
>>            <property name="description" 
>> class="ptolemy.kernel.util.StringAttribute" value="<p>The 
>> DatabaseWriter actor performs database updates against an open 
>> database and outputs the number of rows 
>> inserted.</p>

<p>Use the OpenDatabaseConnection 
>> actor to establish a database connection and generate a reference to 
>> that connection. The reference is passed to the DatabaseWriter actor 
>> via the dbcon port.</p>

<p>An update is passed 
>> to the actor via the update port or parameter.</p>

">
>>            </property>
>>            <property name="author" 
>> class="ptolemy.kernel.util.StringAttribute" value="Yang Zhao, Daniel 
>> Crawl">
>>            </property>
>>            <property name="version" 
>> class="ptolemy.kernel.util.StringAttribute" value="null">
>>            </property>
>>            <property name="dbcon (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An input port that 
>> accepts a reference to an established database connection. The 
>> OpenDatabaseConnection actor can be used to generate this reference.">
>>            </property>
>>            <property name="result (port)" 
>> class="ptolemy.kernel.util.StringAttribute" value="An output port 
>> that broadcasts how many rows were sucessfully updated.">
>>            </property>
>>            <property name="query (parameter)" 
>> class="ptolemy.data.expr.StringParameter" value="An input update 
>> string. Updates can be specified via the query port or query 
>> parameter.">
>>            </property>
>>        </property>
>>        <port name="dbcon" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>            <property name="tokenConsumptionRate" 
>> class="ptolemy.data.expr.Parameter" value="1">
>>            </property>
>>        </port>
>>    </entity>
>>    <entity name="Display2" class="ptolemy.actor.lib.gui.Display">
>>        <property name="_windowProperties" 
>> class="ptolemy.actor.gui.WindowPropertiesAttribute" 
>> value="{bounds={119, 150, 1008, 708}, maximized=false}">
>>        </property>
>>        <property name="_paneSize" 
>> class="ptolemy.actor.gui.SizeAttribute" value="[1000, 653]">
>>        </property>
>>        <property name="rowsDisplayed" 
>> class="ptolemy.data.expr.Parameter" value="10">
>>        </property>
>>        <property name="columnsDisplayed" 
>> class="ptolemy.data.expr.Parameter" value="40">
>>        </property>
>>        <property name="suppressBlankLines" 
>> class="ptolemy.data.expr.Parameter" value="false">
>>        </property>
>>        <property name="title" 
>> class="ptolemy.data.expr.StringParameter" value="">
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong 
>> Xiong, Edward A. Lee</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Display actor reads tokens of any type via its input multiport, and 
>> displays each token on a separate line in a text display 
>> window.</p>

<p>Specify the size of the text 
>> display window with the rowsDisplayed and columnsDisplayed 
>> parameters. Simply resizing the window onscreen does not persistently 
>> change the size when the workflow is saved, closed, and then 
>> re-opened. </p>

<p>If the input is a string 
>> token, then the actor strips the surrounding quotation marks before 
>> displaying the value.</p> 

<p>Select the 
>> suppressBlankLines parameter to specify that the actor not add blank 
>> lines to the display. By default, the actor will add blank 
>> lines.</p>

<p>Note: this actor can consume large 
>> amounts of memory. It is not advisable to use it to display large 
>> output streams.</p></configure></property>
>> <property name="port:input" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A 
>> multiport that accepts tokens of any type.</configure></property>
>> <property name="prop:suppressBlankLines" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify 
>> whether the actor should display blank lines (the default) or 
>> suppress them.</configure></property>
>> <property name="prop:rowsDisplayed" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> vertical size of the display, in rows. The value is an integer that 
>> defaults to 10.</configure></property>
>> <property name="prop:columnsDisplayed" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> horizontal size of the display, in columns. The value is an integer 
>> that defaults to 40.</configure></property>
>> <property name="prop:title" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The 
>> title of the text display window. If specified, the value will appear 
>> in the title bar of the text display window.</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org:actor:7:1">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.gui.Display">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:883:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#TextualOutput">
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[905.0, 285.0]">
>>        </property>
>>    </entity>
>>    <entity name="Expression" class="ptolemy.actor.lib.Expression">
>>        <property name="expression" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="s.equals(nil)?"NULL":s">
>>            <property name="_hide" class="ptolemy.data.expr.Parameter" 
>> value="true">
>>            </property>
>>        </property>
>> <property name="KeplerDocumentation" 
>> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
>> <property name="description" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="author" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun 
>> Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
>> <property name="version" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property> 
>>
>> <property name="userLevelDocumentation" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The 
>> Expression actor evaluates a specified expression (e.g., an addition 
>> or multiplication operation), which may reference the values of 
>> user-specified input ports, the current time, or the actor's 
>> iteration count. The actor outputs the value of the evaluated 
>> expression. </p>

<p>Expressions are specified in 
>> the Ptolemy expression language via the expression parameter. For 
>> more information about the expression language, see 
>> http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. 
>> </p>

<p>By default, the expression parameter is 
>> empty, and attempting to execute the actor without first specifying 
>> an expression generates an error. Expressions can refer to the values 
>> of inputs by the port name; to the current time by the identifier 
>> "time"; and to the current iteration count by the 
>> identifier "iteration." </p>

<p>Input 
>> ports are created by the user and correspond to variables used in the 
>> specified expression. Currently, the Expression actor does not 
>> support input multiports. The actor requires all of its inputs to be 
>> present. If inputs are not all present, then the actor will generate 
>> an error. </p>

<p>Note: the Expression actor can 
>> be used instead of many of the arithmetic actors, such as 
>> AddSubtract, MultiplyDivide, and TrigFunction. However, those actors 
>> will be usually be more efficient, and sometimes more convenient to 
>> use.</p></configure></property>
>> <property name="port:output" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> output port that broadcasts the value of the evaluated expression. 
>> The actor automatically determines the type based on the type of the 
>> input.</configure></property>
>> <property name="prop:expression" 
>> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An 
>> expression to evaluate. Expressions are specified in the Ptolemy 
>> expression language. For more information about the expression 
>> language, see 
>> http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. 
>> By default, the parameter is empty, and attempting to execute the 
>> actor without first specifying an expression generates an error. 
>> Expressions can refer to the values of inputs by the port name; to 
>> the current time by the identifier "time"; and to the 
>> current iteration count by the identifier 
>> "iteration."</configure></property>
>> </property>        <property name="entityId" 
>> class="org.kepler.moml.NamedObjId" 
>> value="urn:lsid:kepler-project.org/ns/:1266:283:7">
>>        </property>
>>        <property name="class" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="ptolemy.actor.lib.Expression">
>>            <property name="id" 
>> class="ptolemy.kernel.util.StringAttribute" 
>> value="urn:lsid:kepler-project.org:class:950:1">
>>            </property>
>>        </property>
>>        <property name="semanticType00" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:1:1#MathOperationActor">
>>        </property>
>>        <property name="semanticType11" 
>> class="org.kepler.sms.SemanticType" 
>> value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
>>        </property>
>>        <property name="_icon" 
>> class="ptolemy.vergil.icon.BoxedValueIcon">
>>            <property name="attributeName" 
>> class="ptolemy.kernel.util.StringAttribute" value="expression">
>>            </property>
>>            <property name="displayWidth" 
>> class="ptolemy.data.expr.Parameter" value="60">
>>            </property>
>>        </property>
>>        <property name="_location" 
>> class="ptolemy.kernel.util.Location" value="[750.0, 355.0]">
>>        </property>
>>        <property name="derivedFrom" 
>> class="org.kepler.moml.NamedObjIdReferralList" 
>> value="urn:lsid:kepler-project.org:actor:75:1">
>>        </property>
>>        <port name="s" class="ptolemy.actor.TypedIOPort">
>>            <property name="input"/>
>>        </port>
>>    </entity>
>>    <relation name="relation2" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation5" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation4" class="ptolemy.actor.TypedIORelation">
>>        <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>        </property>
>>        <vertex name="vertex1" value="[460.0, 330.0]">
>>        </vertex>
>>    </relation>
>>    <relation name="relation3" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation7" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation6" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation12" class="ptolemy.actor.TypedIORelation">
>>        <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>        </property>
>>        <vertex name="vertex1" value="[530.0, 205.0]">
>>        </vertex>
>>    </relation>
>>    <relation name="relation11" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation13" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation14" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation10" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation15" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation16" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation17" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation8" class="ptolemy.actor.TypedIORelation">
>>    </relation>
>>    <relation name="relation9" class="ptolemy.actor.TypedIORelation">
>>        <property name="width" class="ptolemy.data.expr.Parameter" 
>> value="-1">
>>        </property>
>>        <vertex name="vertex1" value="[820.0, 310.0]">
>>        </vertex>
>>    </relation>
>>    <link port="DataTurbine.CrystalBogBuoy/airTemp" relation="relation"/>
>>    <link port="Record Disassembler.input" relation="relation"/>
>>    <link port="Record Disassembler.timestamps" relation="relation2"/>
>>    <link port="Record Disassembler.data" relation="relation5"/>
>>    <link port="Array To Sequence.input" relation="relation2"/>
>>    <link port="Array To Sequence.output" relation="relation10"/>
>>    <link port="Array To Sequence2.input" relation="relation5"/>
>>    <link port="Array To Sequence2.output" relation="relation4"/>
>>    <link port="generalRangeCheck.flagIn" relation="relation3"/>
>>    <link port="generalRangeCheck.flagOut" relation="relation7"/>
>>    <link port="generalRangeCheck.dataIn" relation="relation4"/>
>>    <link port="generalRangeCheck.dataOut" relation="relation8"/>
>>    <link port="monthSpecificRangeCheck.month" relation="relation12"/>
>>    <link port="monthSpecificRangeCheck.data" relation="relation4"/>
>>    <link port="monthSpecificRangeCheck.flagOut" relation="relation3"/>
>>    <link port="Record Assembler.output" relation="relation17"/>
>>    <link port="Record Assembler.sampledate" relation="relation15"/>
>>    <link port="Record Assembler.year4" relation="relation6"/>
>>    <link port="Record Assembler.station_id" relation="relation14"/>
>>    <link port="Record Assembler.month" relation="relation12"/>
>>    <link port="Record Assembler.daynum" relation="relation11"/>
>>    <link port="Record Assembler.sample_time" relation="relation13"/>
>>    <link port="Record Assembler.air_temp" relation="relation9"/>
>>    <link port="Record Assembler.flag_air_temp" relation="relation7"/>
>>    <link port="disassembleDate.timestamps" relation="relation10"/>
>>    <link port="disassembleDate.year" relation="relation6"/>
>>    <link port="disassembleDate.month" relation="relation12"/>
>>    <link port="disassembleDate.daynum" relation="relation11"/>
>>    <link port="disassembleDate.sample_time" relation="relation13"/>
>>    <link port="disassembleDate.sample_date" relation="relation15"/>
>>    <link port="Constant.output" relation="relation14"/>
>>    <link port="Open Database Connection.dbcon" relation="relation16"/>
>>    <link port="Database Writer.dbcon" relation="relation16"/>
>>    <link port="Database Writer.input" relation="relation17"/>
>>    <link port="Display2.input" relation="relation9"/>
>>    <link port="Expression.output" relation="relation9"/>
>>    <link port="Expression.s" relation="relation8"/>
>> </entity>
>> _______________________________________________
>> Kepler-users mailing list
>> Kepler-users at kepler-project.org
>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Unnamed2.xml
Type: text/xml
Size: 53309 bytes
Desc: not available
URL: <http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-users/attachments/20100603/c832c0d1/attachment.xml>


More information about the Kepler-users mailing list