[kepler-users] nil vs. null

Corinna Gries cgries at wisc.edu
Thu Jun 3 09:22:08 PDT 2010


thanks Christopher, that makes the expression work after the selector - 
and makes sense, of course.

Corinna

Christopher Brooks wrote:
> Hi Corinna,
> By definition nil tokens are not equal to anything
> Try using
> s.isNil()?"NULL":s
>
>
> http://ptolemy.eecs.berkeley.edu/ptolemyII/ptIIlatest/ptII/doc/expressionsa9.htm 
>
> says
> --start--
> 3.8 Nil Tokens
> Null or missing tokens are common in analytical systems like R and SAS 
> where they are used to handle sparsely populated data sources. In 
> database parlance, missing tokens are sometimes called null tokens. 
> Since null is a Java keyword, we use the term "nil". Nil tokens are 
> useful for analyzing real world data such as temperature where the 
> value was not measured during every interval. In principle, an as yet 
> unimplemented function such as average() method could properly handle 
> nil tokens - when the average() method sees a nil token, it should be 
> ignored. Note that this can lead to uncertainty. For example, if 
> average() is expecting 30 values and 29 of them are nil, then the 
> average will not be very accurate.
>
> If an operation such as add(), divide(), modulo(), multiply(), one(), 
> subtract(), zero() or their corresponding "reverse" operations 
> includes a nil token, then the output is nil. If one of the arguments 
> for isCloseTo() or isEqualTo() is nil, then the method returns false. 
> Methods that return a nil token return a nil token with a specific 
> type so that type safety is preserved. The following tokens have NIL 
> values defined: ArrayToken, BooleanToken, ComplexToken, DoubleToken, 
> FloatToken IntToken, LongToken, ShortToken, StringToken, Token, 
> UnsignedByteToken. There is no nil token for the various matrix tokens 
> because the underlying matrices are java native type matrices that do 
> not support nil.
> The expression language defines a constant named nil that refers to 
> the Token.NIL field. The cast() expression language function can be 
> used to generate references to the NIL fields of the other classes. 
> For example, "cast(int, nil)" will return a reference to the 
> IntToken.NIL field.
>
> --end--
>
> _Christopher
>
> On 6/3/10 7:08 AM, Corinna Gries wrote:
>> 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
>>>
>>
>>
>> _______________________________________________
>> Kepler-users mailing list
>> Kepler-users at kepler-project.org
>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>



More information about the Kepler-users mailing list