[kepler-users] nil vs. null

Corinna Gries cgries at wisc.edu
Thu Jun 3 07:08:06 PDT 2010


Derik,

attached is another really simple workflow that isolates the problem 
with the expression. As soon as I put the selector between the nil 
constant and the expression, the expression doesn't recognize nil as nil 
anymore. And it doesn't work with or without quotes around nil.

any suggestions?
thanks for your help
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: Unnamed3.xml
Type: text/xml
Size: 40321 bytes
Desc: not available
URL: <http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-users/attachments/20100603/450ff995/attachment.xml>


More information about the Kepler-users mailing list