Purpose: Point where the different languages register that they know how to do code generation and common functions for all languages.
The Code Generation is located in
org.argouml.language
.
The Code Generation subsystem is a Control subsystem. See Section 4.5, “View and Control subsystems”.
Currently (up until April 2004) very much of this subsystem is located in
org.argouml.uml.generator
and we have a need to modify the interfaces of the subsystem to no longer
include any NSUML types.
This move will be carried out by creating new interfaces in
org.argouml.language
and deprecating the old ones.
This is my (Linus Tolke) suggested way of how it is going to work:
The different languages or notations supplied with ArgoUML are found in sub-packages of {@link org.argouml.language}.
Any definition or foundation interfaces are found in the
directory org.argouml.language
.
Any helper classes such as abstract implementation classes
are also found in org.argouml.language
.
At boot time, each language registers their interfaces in the
org.argouml.language.Language
register.
Languages that generates a Notation implement
the NotationGenerator
interface.
Languages that edits or parses the Notation implement
the
NotationEditor
interface.
Languages that generates Code templates implement
the CodeGenerator
interface.
Languages that reverse engineer Code implement
the CodeReverseEngineer
interface.
Full MDA implementations of languages is not currently discussed. I (Linus April 2004) does not understand how it is supposed to work.