Publication of Processing Status Events
During execution, ShapeChange publishes a certain set of status events. If ShapeChange is not invoked as a standalone command line application then Java objects (that are part of a larger application) that implement the StatusReader interface can be registered with the StatusBoard singleton to receive these events.
NOTE: the information provided on this page is for advanced users, specifically for the case embedding ShapeChange in another application.
Status Events
Event Source / ShapeChange Class | Name of ShapeChange Class Public Constant defining the Status Code | Status Code (Integer) | Description |
---|---|---|---|
EADocument/GSIP | STATUS_EADOCUMENT_INITSTART | 101 | |
EADocument/GSIP | STATUS_EADOCUMENT_READMODEL | 102 | |
EADocument/GSIP | STATUS_EADOCUMENT_ESTABLISHCLASSES | 103 | |
EADocument/GSIP | STATUS_EADOCUMENT_READCONSTARINTS | 104 | |
Converter | STATUS_TARGET_INITSTART | 201 | Initialization of a Target before it processes an application schema. |
Converter | STATUS_TARGET_PROCESS | 202 | A Target starts processing an application schema. |
Converter | STATUS_TARGET_WRITE | 203 | A Target starts the output writing phase after it has processed an application schema (usually irrelevant for SingleTargets like the FeatureCatalogue). |
Converter | STATUS_TARGET_WRITEALL | 204 | A SingleTarget starts the output writing phase after it has processed all relevant application schemasThe FeatureCatalogue only writes a temporary XML at this stage. |
Converter | STATUS_TARGET_DEFERRED_WRITE | 205 | Final phase for all targets where writing the output can be highly memory intensive (like performing an XSL transformation that requires several GB of memory – example: transformation of the temporary XML by the FeatureCatalogue).NOTE1: ShapeChange starts this phase once the model has been processed by all transformations and targets, as a kind of postprocessing phase.NOTE2: currently, the ID of the target for which the deferred output write is executed cannot be retrieved from the Converter. |
Converter | STATUS_TRANSFORMER_PROCESS | 206 | Indicates that a transformation is being processed.NOTE: currently, the Converter does not provide further information about which transformation is being processed. A transformation itself might publish more specific status events; the Profiler is an example. |
FeatureCatalogue | STATUS_WRITE_PDF | 22 | |
FeatureCatalogue | STATUS_WRITE_HTML | 23 | |
FeatureCatalogue | STATUS_WRITE_XML | 24 | |
FeatureCatalogue | STATUS_WRITE_RTF | 25 | |
FeatureCatalogue | STATUS_WRITE_FRAMEHTML | 26 | |
FeatureCatalogue | STATUS_WRITE_DOCX | 27 | |
Profiler(code range 200100-200199) | STATUS_PREPROCESSING_PROFILESVALUECONSISTENCYCHECK | 200100 | The Profiler starts execution of rule-trf-profiling-preprocessing-modelConsistencyCheck |
Profiler | STATUS_PREPROCESSING_MODELCONSISTENCYCHECK | 200101 | The Profiler starts execution of rule-trf-profiling-preprocessing-profilesValueConsistencyCheck |
Profiler | STATUS_PROCESSING_PROFILING | 200130 | The Profiler starts the actual profiling process |
Profiler | STATUS_POSTPROCESSING_REMOVERESIDUALTYPES | 200170 | The Profiler starts execution of rule-trf-profiling-postprocessing-removeResidualTypes |
Profiler | STATUS_POSTPROCESSING_REMOVEEMPTYPACKAGES | 200171 | The Profiler starts execution of rule-trf-profiling-postprocessing-removeEmptyPackage |
Application Schema Metadata (code range 301500-301599) |
STATUS_RULE_ALL_IDENTIFY_PROFILES | 301500 | The Application Schema Metadata target starts execution of rule-asm-all-identify-profiles |
Pseudocode Example
public class XYZ implements StatusReader { ... public boolean myMethod() { ... StatusBoard.getStatusBoard().registerStatusReader(this); converter = new Converter(options, result); converter.convert(); ... } }