Kermeta is bundled with a framework that provides the base functionalities for metamodel engineering.
Tip | |
---|---|
When you write
|
Currently, it provides the following packages :
Packages in Kermeta framework
kermeta::interpreter
This package defines some classes related to Kermeta interpreter and also to Kermeta surface syntax. Some uses of this package are illustrated in Section 2.18, “Dynamic evaluation of Kermeta expressions”.
kermeta::persistence
This package defines the notion required to serialize and deserialize models. This is illustrated in Section 2.12, “Loading and saving models” and in the EMF tutorial document ( http://www.kermeta.org/documents/emfTutorial/ )
kermeta::kunit
This is a basic support for unitary tests (like Junit but for Kermeta).
kermeta::language::structure
It contains the classes of Kermeta structure. Note that it slightly differs from the kermeta_java.ecore due to an inheritance to the classes in Kermeta::reflexion. However, it proposes the very same functionalities.
kermeta::language::behavior
It contains the classes for the behavior of Kermeta.
kermeta::exceptions
It defines various exceptions that you can use in Kermeta. Inheriting from kermeta::exceptions::Exception allows to give more information to the end user because it will also provide a stack trace (which would not be available otherwise).
kermeta::io
This package provides basic support for input/output with Kermeta. It is voluntary minimal because that not the main role of Kermeta to provide such primitives. In the future, this package may even disappear and be replaced by the ability to directly call Java libraries.
kermeta::reflection
This package contains all the abstract classes needed for the reflexivity of Kermeta. The concrete implementation are in kermeta::standard or kermeta::structure.
kermeta::utils
This package defines various tool classes that cannot be part of the core of the language, but are important enough to be part of the framework.
kermeta::standard
This package defines all the basic objects needed for a typical Kermeta application. For example, it defines data types, collections, etc.
Note | |
---|---|
For more details about the content of these packages, please look at the generated documentation available on line: http://www.kermeta.org/docs/KermetaFramework/framework.km.html |