MWE The Big Picture
What is MWE aiming at
The purpose of MWE is to help orchestrate and configurate code generation workflows. Like with compilers a code generation process can and should be splitted into several single parts, each part doing a specific job. Such units of work are:
- parsing / loading model - validating model - linking model - transforming model - modifying model - generating code out of a model
Typically there are a couple of component fulfilling such jobs included in a generator (compiler-chain), where each needs additional component-specific configuration.
The first thing MWE should provide is a way to define a sequence of specific components and declare how they should be configured. In addition MWE provides one (or more) runtime workflow models, providing
* the interface a specific component should implement * such an interface defines a main 'execute' method and optionally additional life cycle callback methods (like preconfigure, postconfigure, preExecute,etc.) * A way to execute multiple components in parallel * A way to conditionally execute components