de.cau.cs.kieler.kies.transformation
Class SyncChartsOptimizationDataComponent

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.kies.transformation.AbstractTransformationDataComponent
              extended by de.cau.cs.kieler.kies.transformation.SyncChartsOptimizationDataComponent
All Implemented Interfaces:
IDataComponent, IJSONObjectDataComponent, IExecutableExtension

public class SyncChartsOptimizationDataComponent
extends AbstractTransformationDataComponent

DataComponent optimizing an existing SyncCharts.

Rating red

Field Summary
static String GLOBALVAR_REC
          global variable determining whether the transformation should be run recursively, hence everything is transformed within one step.
static String GLOBALVAR_RULE1
           
static String GLOBALVAR_RULE2
           
static String GLOBALVAR_RULE3
           
static String GLOBALVAR_RULE4
           
static String GLOBALVAR_RULE5
           
static String GLOBALVAR_RULE6
           
static String GLOBALVAR_RULE7
           
static String GLOBALVAR_RULE8
           
 
Fields inherited from class de.cau.cs.kieler.kies.transformation.AbstractTransformationDataComponent
currentContext, currentDescriptor, facade, globalVars, headless, kiviMode, rootRegion, rootState
 
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
SyncChartsOptimizationDataComponent()
          default constructor.
SyncChartsOptimizationDataComponent(boolean kivimode)
           
 
Method Summary
 void doPostTransformation()
          this method is called if there are no further steps to do and the transformation will terminate.
 String[] getBasePackages()
          
 TransformationDescriptor getNextTransformation()
          
 String getTransformationFile()
          
 void initialize()
          Initialize.
 KiemProperty[] provideProperties()
          Provide properties for this component.
 void setRootState(State theRootState)
           
 JSONObject step(JSONObject arg0)
          Step method for a DataObserver and a DataPrroducer.
 void wrapup()
          Wrap-up.
 
Methods inherited from class de.cau.cs.kieler.kies.transformation.AbstractTransformationDataComponent
fetchRootRegionAndState, finished, getActiveEditorEditingDomain, getCurrentContext, getCurrentDescriptor, getDomain, getEditingDomainForResourceSet, getRootState, getXtendFacade, isFinished, isHistoryObserver, isObserver, isProducer, setGlobalVariable, setHeadless
 
Methods inherited from class de.cau.cs.kieler.sim.kiem.JSONObjectDataComponent
getInitialVariables, provideFilterKeysJSON, provideInitialVariables, 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, setConfigurationElemenet, setCurrentComponentID, setHistoryStep, setInitializationData, setProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GLOBALVAR_REC

public static final String GLOBALVAR_REC
global variable determining whether the transformation should be run recursively, hence everything is transformed within one step.

See Also:
Constant Field Values

GLOBALVAR_RULE1

public static final String GLOBALVAR_RULE1
See Also:
Constant Field Values

GLOBALVAR_RULE2

public static final String GLOBALVAR_RULE2
See Also:
Constant Field Values

GLOBALVAR_RULE3

public static final String GLOBALVAR_RULE3
See Also:
Constant Field Values

GLOBALVAR_RULE4

public static final String GLOBALVAR_RULE4
See Also:
Constant Field Values

GLOBALVAR_RULE5

public static final String GLOBALVAR_RULE5
See Also:
Constant Field Values

GLOBALVAR_RULE6

public static final String GLOBALVAR_RULE6
See Also:
Constant Field Values

GLOBALVAR_RULE7

public static final String GLOBALVAR_RULE7
See Also:
Constant Field Values

GLOBALVAR_RULE8

public static final String GLOBALVAR_RULE8
See Also:
Constant Field Values
Constructor Detail

SyncChartsOptimizationDataComponent

public SyncChartsOptimizationDataComponent()
default constructor.


SyncChartsOptimizationDataComponent

public SyncChartsOptimizationDataComponent(boolean kivimode)
Parameters:
kivimode - pass true if this data component is used in a way that does not use KIEM.
Method Detail

setRootState

public void setRootState(State theRootState)
Overrides:
setRootState in class AbstractTransformationDataComponent
Parameters:
theRootState - the rootState to set

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
Overrides:
initialize in class AbstractTransformationDataComponent
Throws:
KiemInitializationException - a KiemInitializationException

getBasePackages

public String[] getBasePackages()

Specified by:
getBasePackages in class AbstractTransformationDataComponent
Returns:
all base packages needed for the transformations planned.

getTransformationFile

public String getTransformationFile()

Specified by:
getTransformationFile in class AbstractTransformationDataComponent
Returns:
the actual transformation file (.ext)

getNextTransformation

public TransformationDescriptor getNextTransformation()

Specified by:
getNextTransformation in class AbstractTransformationDataComponent
Returns:
either the next transformation or null if nothing can be transformed anymore.

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
Overrides:
wrapup in class AbstractTransformationDataComponent
Throws:
KiemInitializationException - a KiemInitializationException

step

public JSONObject step(JSONObject arg0)
                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
Overrides:
step in class AbstractTransformationDataComponent
Parameters:
arg0 - the concrete JSONObject of input data (if observer)
Returns:
the JSONObject with the output data (if producer)
Throws:
KiemExecutionException - a KiemExecutionException

provideProperties

public KiemProperty[] provideProperties()
Provide properties for this component. The component may create and publicize its properties with this method. They will be set/modified by the execution manager during the user edits them. Whenever the user decides to run/start the execution the properties are tested (see below) and the component may use there settings.

The following lists a simple example for such properties:
\ATOverride
public KiemProperty[] provideProperties() {
KiemProperty[] properties = new KiemProperty[7];
properties[0] = new KiemProperty(
"state name",
"state");
properties[1] = new KiemProperty(
"some bool",
true);
properties[2] = new KiemProperty(
"an integer",
2);
properties[3] = new KiemProperty(
"a file",
new KiemPropertyTypeFile(),
"c:/nothing.txt");
String[] items = {"trace 1","trace 2", "trace 3", "trace 4"};
properties[4] = new KiemProperty(
"a choice",
new KiemPropertyTypeChoice(items),
items[2]);
properties[5] = new KiemProperty(
"workspace file",
new KiemPropertyTypeWorkspaceFile(),
"/nothing.txt");
properties[6] = new KiemProperty(
"editor",
new KiemPropertyTypeEditor(),
"");
return properties;
}

These are built-in types that can always be extended using the KiemProperty class.

Overrides:
provideProperties in class AbstractDataComponent
Returns:
the KiemProperty[] or null if no properties are provided

doPostTransformation

public void doPostTransformation()
this method is called if there are no further steps to do and the transformation will terminate.

Specified by:
doPostTransformation in class AbstractTransformationDataComponent