CarShop Example
This project can be self-instantiated (i.e., instantiation into the project, without driving a new project)
or can be instantiated into a derived project (default usage scenario for product lines).
This project demonstrates several modelling and instantiation concepts:
IVML Modelling Capabilities
- Custom Data Type Definition: Definition of a positive Integer and an enumeration.
- Abstract Compounds: Comparable with abstract classes.
- Refined Compounds: Comparable with inherited classes.
- Default Values: May be overwritten.
VIL Instantiation Capabilities
- Advices: VIL script imports structure and data types defined in IVML model.
- Dynamic Dispatch: Different instantiation functions are defined for the refined compounds.
Correct function is automatically selected without need of instance checks and cast operations.
- Syntax-based Modifications of Java-Code: Changes constant values via AST-operations.
- Syntax-based Operations on XML-files: Selection of appropriate XML-files based on their content.
Scenario
The user may configure an engine specification and a window (title and dimensions).
EASy-Producer will select car descriptions that match the selected criteria and configure
an demonstrator that displays the selected cars.