de.cau.cs.kieler.klots.kiemdatacomponents
Class KlotsEditorNXTDataObserver

java.lang.Object
  extended by de.cau.cs.kieler.sim.kiem.internal.AbstractDataComponent
      extended by de.cau.cs.kieler.sim.kiem.JSONObjectDataComponent
          extended by de.cau.cs.kieler.klots.kiemdatacomponents.KlotsEditorNXTDataObserver
All Implemented Interfaces:
IDataComponent, IJSONObjectDataComponent, IExecutableExtension

public class KlotsEditorNXTDataObserver
extends JSONObjectDataComponent
implements IJSONObjectDataComponent

Rating red

Field Summary
 
Fields inherited from class de.cau.cs.kieler.sim.kiem.internal.AbstractDataComponent
MASTER_CMD_MACROSTEP, MASTER_CMD_PAUSE, MASTER_CMD_RUN, MASTER_CMD_STEP, MASTER_CMD_STEPBACK, MASTER_CMD_STOP
 
Constructor Summary
KlotsEditorNXTDataObserver()
           
 
Method Summary
 void initialize()
          Initialize.
 boolean isHistoryObserver()
          Flags that this component can handle past, already computed history values.
 boolean isObserver()
          To check whether the DataComponent is an observer.
 boolean isProducer()
          To check whether the DataComponent is a producer.
 JSONObject provideInitialVariables()
          Provide (local) interface variables and possible initial values.
 JSONObject step(JSONObject jSONObject)
          Step method for a DataObserver and a DataPrroducer.
 void wrapup()
          Wrap-up.
 
Methods inherited from class de.cau.cs.kieler.sim.kiem.JSONObjectDataComponent
getInitialVariables, provideFilterKeysJSON, setInitialVariables
 
Methods inherited from class de.cau.cs.kieler.sim.kiem.internal.AbstractDataComponent
checkProperties, finalize, getConfigurationElement, getCurrentComponentID, getDataComponentId, getName, getPluginId, getProperties, getShell, isDeltaObserver, isHistoryStep, isInvisible, isMacroStepDone, isMaster, isMasterImplementingGUI, isMultiInstantiable, masterCommand, masterGetAimedStepDuration, masterGUI, masterGUIisEnabled, masterIsPaused, masterIsRunning, masterSetAimedStepDuration, masterSetKIEMInstance, notifyEvent, provideEventOfInterest, provideFilterKeys, provideProperties, setConfigurationElemenet, setCurrentComponentID, setHistoryStep, setInitializationData, setProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KlotsEditorNXTDataObserver

public KlotsEditorNXTDataObserver()
Method Detail

initialize

public void initialize()
                throws KiemInitializationException
Initialize. Do some initializing prior to execution. If an error occurs during initialization, the DataComponent should raise a KiemInitializationException.

Specified by:
initialize in interface IDataComponent
Throws:
KiemInitializationException - a KiemInitializationException

provideInitialVariables

public JSONObject provideInitialVariables()
Description copied from class: JSONObjectDataComponent
Provide (local) interface variables and possible initial values. This is an optional method that will provide some interface variable keys and values that can be used by other DataComponents within and after the initialization phase every DataComponent may receive the union of all those variable keys by calling the JSONObjectDataComponent.getInitialVariables() method.

Overrides:
provideInitialVariables in class JSONObjectDataComponent
Returns:
the local initial variables as a JSONObject

wrapup

public void wrapup()
            throws KiemInitializationException
Wrap-up. Do some wrapping-up after execution has finished. If an error occurs during wrap up, the DataComponent should raise a KiemInitializationException.

Specified by:
wrapup in interface IDataComponent
Throws:
KiemInitializationException - a KiemInitializationException

isProducer

public boolean isProducer()
To check whether the DataComponent is a producer. If the DataComponent is a producer it should return != null in its step() method.

Specified by:
isProducer in interface IDataComponent
Returns:
true, if is producer

isObserver

public boolean isObserver()
To check whether the DataComponent is an observer. If the DataComponent is an observer the arguments in its step() method will be != null.

Specified by:
isObserver in interface IDataComponent
Returns:
true, if is observer

isHistoryObserver

public boolean isHistoryObserver()
Description copied from class: AbstractDataComponent
Flags that this component can handle past, already computed history values. Overwrite this if this component can explicitly handle past recorded history values.
In case the user makes steps back into the history, only observers that return true in this method will get any (recorded) history data. Components that return false (default) will not get any data, while the the user navigates within the recorded tick area.

Overrides:
isHistoryObserver in class AbstractDataComponent
Returns:
a boolean indicating that the component is recorded observer

step

public JSONObject step(JSONObject jSONObject)
                throws KiemExecutionException
Step method for a DataObserver and a DataPrroducer.

For a producer only the argument will always be null. For an observer only this method will be called asynchronous. This may mean that in case the observer is slow, it may be skipped at some consecutive steps until it becomes ready again. If this is not desired and the observer MUST NOT be skipped, then the DataComponent should also be a DataProducer but return just null.

If an error occurs during the execution of the step method, a DataComponent should raise a KiemExecutionException that is then catched by the execution manager an brought to the user's attention.

Specified by:
step in interface IJSONObjectDataComponent
Parameters:
jSONObject - the concrete JSONObject of input data (if observer)
Returns:
the JSONObject with the output data (if producer)
Throws:
KiemExecutionException - a KiemExecutionException