modhelxs.state_management
Class TimedManagedInterfaceBlock<T extends java.lang.Comparable<T>,I extends java.lang.Comparable<I>>

java.lang.Object
  extended by modhelxs.abstractsemantics.NamedEntity
      extended by modhelxs.abstractsemantics.ObservableEntity
          extended by modhelxs.abstractsemantics.Block
              extended by modhelxs.abstractsemantics.InterfaceBlock
                  extended by modhelxs.state_management.ManagedInterfaceBlock
                      extended by modhelxs.state_management.TimedManagedInterfaceBlock<T,I>
All Implemented Interfaces:
Block, InterfaceBlock, NamedEntity, ObservableEntity
Direct Known Subclasses:
DE_SDF_InterfaceBlock, DE_SDF_LinInterpolator

public abstract class TimedManagedInterfaceBlock<T extends java.lang.Comparable<T>,I extends java.lang.Comparable<I>>
extends ManagedInterfaceBlock

An implementation of the ManagedInterfaceBlock for timed IB.


Field Summary
(package private)  java.lang.Class<T> clockType_
          The type of the time for the observation clock.
(package private)  java.lang.Class<I> internalClockType_
          The type of the time for the observation clock of the internal model.
private  Clock<T> my_clock_
          The observation clock of the block.
private  Clock<I> my_internal_clock_
          The observation clock of the internal model.
private  Attribute<I> next_internal_obs_time
          Time of the next observation of the internal model.
private  Attribute<T> next_obs_time
          Time of the next observation.
 
Constructor Summary
TimedManagedInterfaceBlock(java.lang.Class<T> clockType, TagCalculus<T> tcalc, java.lang.Class<I> internalClockType, TagCalculus<I> itcalc, java.lang.String name, Model<?> model, java.lang.Object... properties)
          Create a TimedManagedInterfaceBlock with of clock of type T.
 
Method Summary
 I advanceNextInternalObservationTime(I duration)
          Add a duration to the next observation date of the block.
 I advanceNextInternalObservationTime(Value<I> duration)
          Add a duration to the next observation date of the block.
 T advanceNextObservationTime(T duration)
          Add a duration to the next observation date of the block.
 T advanceNextObservationTime(Value<T> duration)
          Add a duration to the next observation date of the block.
 void doPreSetup()
          Some pre-setup behavior necessary for subclasses.
 void doReset()
          The reset behavior of the interface block.
 void doStartOfSnapshot()
          The start of snapshot behavior of the block.
 void emitObservationRequests()
          Emit observation request for future snapshots by creating ticks on clocks.
 I getNextInternalObservationTime()
          Return the next observation date of the block.
 T getNextObservationTime()
          Return the next observation date of the block.
 Tag<T> getTimeOfRequest()
          Get the time tag at which the block has requested to be observed.
 boolean hasObservationRequest()
          Has this block posted an observation request?
 Clock<I> internalObservationClock()
          Return the observation clock of the block.
static java.lang.String nextInternalObsTimeAttribute()
          Return the name of the Attribute that contains the next observation time of the internal model.
static java.lang.String nextObsTimeAttribute()
          Return the name of the Attribute that contains the next observation time.
 Clock<T> observationClock()
          Return the observation clock of the block.
 I setNextInternalObservationTime(I date)
          Set the next observation date of the block.
 T setNextObservationTime(T date)
          Set the next observation date of the block.
 boolean shouldUpdateModel()
          Should the internal model be updated.
 
Methods inherited from class modhelxs.state_management.ManagedInterfaceBlock
doEndOfSnapshot, doGhostUpdate, doPostUpdate, doPreUpdate, doSetup, endOfSnapshot, endOfUpdate, initFromProperties, internalWasUpdated, reset, setup, startOfSnapshot, startOfUpdate, update, wasUpdated
 
Methods inherited from class modhelxs.abstractsemantics.InterfaceBlock
adaptIn, adaptOut, connect, connectFromModel, createAdaptationRelation, getAdaptation, getInputPins, getInternalModel, getOutputPins, prep, validate, wrapup
 
Methods inherited from class modhelxs.abstractsemantics.Block
connectFromInterfaceBlock, connectFromRegularBlock, getEngine, getMoC, getParent, getSolver, sanityCheck, setParent
 
Methods inherited from class modhelxs.abstractsemantics.ObservableEntity
addPin, getInterface, getPin
 
Methods inherited from class modhelxs.abstractsemantics.NamedEntity
getName, getProperties, getProperty, hasProperty, removeProperty, setName, setProperties, setProperty, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface modhelxs.ecore.Block
getParent
 
Methods inherited from interface modhelxs.ecore.ObservableEntity
getInterface
 
Methods inherited from interface modhelxs.ecore.NamedEntity
getName, getProperties, setName
 

Field Detail

clockType_

java.lang.Class<T extends java.lang.Comparable<T>> clockType_
The type of the time for the observation clock.


my_clock_

private Clock<T extends java.lang.Comparable<T>> my_clock_
The observation clock of the block.


next_obs_time

private Attribute<T extends java.lang.Comparable<T>> next_obs_time
Time of the next observation.


internalClockType_

java.lang.Class<I extends java.lang.Comparable<I>> internalClockType_
The type of the time for the observation clock of the internal model.


my_internal_clock_

private Clock<I extends java.lang.Comparable<I>> my_internal_clock_
The observation clock of the internal model.


next_internal_obs_time

private Attribute<I extends java.lang.Comparable<I>> next_internal_obs_time
Time of the next observation of the internal model.

Constructor Detail

TimedManagedInterfaceBlock

public TimedManagedInterfaceBlock(java.lang.Class<T> clockType,
                                  TagCalculus<T> tcalc,
                                  java.lang.Class<I> internalClockType,
                                  TagCalculus<I> itcalc,
                                  java.lang.String name,
                                  Model<?> model,
                                  java.lang.Object... properties)
Create a TimedManagedInterfaceBlock with of clock of type T.

Method Detail

nextObsTimeAttribute

public static java.lang.String nextObsTimeAttribute()
Return the name of the Attribute that contains the next observation time.


nextInternalObsTimeAttribute

public static java.lang.String nextInternalObsTimeAttribute()
Return the name of the Attribute that contains the next observation time of the internal model.


observationClock

public Clock<T> observationClock()
Return the observation clock of the block.


internalObservationClock

public Clock<I> internalObservationClock()
Return the observation clock of the block.


getNextObservationTime

public T getNextObservationTime()
Return the next observation date of the block.


getNextInternalObservationTime

public I getNextInternalObservationTime()
Return the next observation date of the block.


setNextObservationTime

public T setNextObservationTime(T date)
Set the next observation date of the block.


advanceNextObservationTime

public T advanceNextObservationTime(T duration)
Add a duration to the next observation date of the block.


advanceNextObservationTime

public T advanceNextObservationTime(Value<T> duration)
Add a duration to the next observation date of the block.


setNextInternalObservationTime

public I setNextInternalObservationTime(I date)
Set the next observation date of the block.


advanceNextInternalObservationTime

public I advanceNextInternalObservationTime(I duration)
Add a duration to the next observation date of the block.


advanceNextInternalObservationTime

public I advanceNextInternalObservationTime(Value<I> duration)
Add a duration to the next observation date of the block.


doPreSetup

public void doPreSetup()
Description copied from class: ManagedInterfaceBlock
Some pre-setup behavior necessary for subclasses.

Specified by:
doPreSetup in class ManagedInterfaceBlock

doStartOfSnapshot

public void doStartOfSnapshot()
Description copied from class: ManagedInterfaceBlock
The start of snapshot behavior of the block.

Specified by:
doStartOfSnapshot in class ManagedInterfaceBlock

doReset

public void doReset()
Description copied from class: ManagedInterfaceBlock
The reset behavior of the interface block.

Specified by:
doReset in class ManagedInterfaceBlock

shouldUpdateModel

public boolean shouldUpdateModel()
Description copied from class: ManagedInterfaceBlock
Should the internal model be updated.

Specified by:
shouldUpdateModel in class ManagedInterfaceBlock

emitObservationRequests

public final void emitObservationRequests()
Description copied from class: ObservableEntity
Emit observation request for future snapshots by creating ticks on clocks.

Overrides:
emitObservationRequests in class InterfaceBlock

hasObservationRequest

public final boolean hasObservationRequest()
Description copied from class: Block
Has this block posted an observation request? If yes, the block needs to be updated even if the scheduling policy of the MoC does not require it.

Overrides:
hasObservationRequest in class Block

getTimeOfRequest

public final Tag<T> getTimeOfRequest()
Description copied from class: Block
Get the time tag at which the block has requested to be observed.

Overrides:
getTimeOfRequest in class Block