modhelxs.abstractsemantics
Class Block

java.lang.Object
  extended by modhelxs.abstractsemantics.NamedEntity
      extended by modhelxs.abstractsemantics.ObservableEntity
          extended by modhelxs.abstractsemantics.Block
All Implemented Interfaces:
Block, NamedEntity, ObservableEntity
Direct Known Subclasses:
AtomicBlock, InterfaceBlock, ManagedBlock

public abstract class Block
extends ObservableEntity
implements Block

A Block is the basic unit of behavior in ModHel'X.


Field Summary
private  java.util.Set<Pin> inputpins_
          The input pins of this block.
private  java.util.Set<Pin> outputpins_
          The output pins of this block.
private  BlockStructure structure_
          The BlockStructure this block belongs to.
 
Constructor Summary
Block(java.lang.String name, java.lang.Object... properties)
           
 
Method Summary
 Relation connect(Pin mine, Pin other)
          Connect one of my pins to another pin.
 Relation connectFromInterfaceBlock(InterfaceBlock intfBlock, Pin other, Pin mine)
          Connect pin other of InterfaceBlock intfBlock to my pin mine.
 Relation connectFromModel(Model<?> model, Pin other, Pin mine)
          Connect pin other of Model model to my pin mine.
 Relation connectFromRegularBlock(Block block, Pin other, Pin mine)
          Connect pin other of regular Block block to my pin mine.
 Engine getEngine()
          Get the execution Engine by which this block is executed.
 java.util.Collection<Pin> getInputPins()
          Get the input pins of this entity.
 ModelOfComputation<?> getMoC()
          Get the ModelOfComputation according to which this Block is executed.
 java.util.Collection<Pin> getOutputPins()
          Get the output ins of this entity.
 BlockStructure getParent()
          Get the block structure this block belongs to.
 ClockSet getSolver()
          Get the clock solver of the execution engine.
 Tag<? extends java.lang.Comparable<?>> getTimeOfRequest()
          Get the time tag at which the block has requested to be observed.
 boolean hasObservationRequest()
          Has this block posted an observation request?
 void sanityCheck()
          Perform sanity check before setup.
 void setParent(BlockStructure s)
          Set the BlockStructure this block belongs to.
 
Methods inherited from class modhelxs.abstractsemantics.ObservableEntity
addPin, emitObservationRequests, endOfSnapshot, endOfUpdate, getInterface, getPin, prep, reset, setup, startOfSnapshot, startOfUpdate, update, validate, wrapup
 
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.ObservableEntity
getInterface
 
Methods inherited from interface modhelxs.ecore.NamedEntity
getName, getProperties, setName
 

Field Detail

structure_

private BlockStructure structure_
The BlockStructure this block belongs to.


inputpins_

private java.util.Set<Pin> inputpins_
The input pins of this block.


outputpins_

private java.util.Set<Pin> outputpins_
The output pins of this block.

Constructor Detail

Block

public Block(java.lang.String name,
             java.lang.Object... properties)
Method Detail

getParent

public BlockStructure getParent()
Description copied from interface: Block
Get the block structure this block belongs to.

Specified by:
getParent in interface Block

setParent

public void setParent(BlockStructure s)
Set the BlockStructure this block belongs to.


connect

public Relation connect(Pin mine,
                        Pin other)
Connect one of my pins to another pin.

Specified by:
connect in class ObservableEntity

connectFromModel

public Relation connectFromModel(Model<?> model,
                                 Pin other,
                                 Pin mine)
Connect pin other of Model model to my pin mine.

Specified by:
connectFromModel in class ObservableEntity

connectFromRegularBlock

public Relation connectFromRegularBlock(Block block,
                                        Pin other,
                                        Pin mine)
Connect pin other of regular Block block to my pin mine.

Specified by:
connectFromRegularBlock in class ObservableEntity

connectFromInterfaceBlock

public Relation connectFromInterfaceBlock(InterfaceBlock intfBlock,
                                          Pin other,
                                          Pin mine)
Connect pin other of InterfaceBlock intfBlock to my pin mine.

Specified by:
connectFromInterfaceBlock in class ObservableEntity

getMoC

public ModelOfComputation<?> getMoC()
Get the ModelOfComputation according to which this Block is executed.

Specified by:
getMoC in class ObservableEntity

getEngine

public Engine getEngine()
Get the execution Engine by which this block is executed.


getSolver

public ClockSet getSolver()
Get the clock solver of the execution engine.


hasObservationRequest

public boolean hasObservationRequest()
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.


getTimeOfRequest

public Tag<? extends java.lang.Comparable<?>> getTimeOfRequest()
Get the time tag at which the block has requested to be observed.


getInputPins

public java.util.Collection<Pin> getInputPins()
Description copied from class: ObservableEntity
Get the input pins of this entity.

Specified by:
getInputPins in class ObservableEntity

getOutputPins

public java.util.Collection<Pin> getOutputPins()
Description copied from class: ObservableEntity
Get the output ins of this entity.

Specified by:
getOutputPins in class ObservableEntity

sanityCheck

public void sanityCheck()
Description copied from class: ObservableEntity
Perform sanity check before setup.

Specified by:
sanityCheck in class ObservableEntity