Modelio Java Architect tags are designed to let you adapt Java semantics to a UML model, in order to generate all Java notions accurately.
For example, the notion of native method in Java does not exist in UML, but a {JavaNative} tagged value on a UML operation enables you to specify this on a model.
In most everyday situations you should never have to use these tags using the MDA GUI (Properties) as the concept they support is handled in a more user friendly and transparent manner through the "Java" view.
You might however have to use these annotations for some cases which are not covered by the "Java" view, because they are seldomly encountered. Such rarely used annotations are tagged "manual only" in the following tables.
For module developers or macro script writers, the following tables are the reference to use when creating Java annotated model programmatically.
General tags
Tag type | Applicable on | Usage |
---|---|---|
GenerationPath |
|
This tag type defines where the java files are generated. It can be absolute or relative to the project space. Default value: if empty, the project space is used. |
CopyrightFile |
|
This tag type defines a copyright text file to include at the top of each generated java file. It can be absolute or relative to the project space. |
JavaName |
|
This tag type defines an alias to use in the java code instead of the UML name. |
JavaNoCode |
|
This tag type indicates the element should be skipped at generation. |
JavaNoPackage |
|
This tag type indicates the package should be skipped when computing the java namespacing. |
Signature tags
Tag type | Applicable on | Usage |
---|---|---|
JavaStatic |
|
This tag type indicates the |
JavaFinal |
|
This tag type indicates the |
JavaNative |
|
This tag type indicates the |
JavaStrict |
|
This tag type indicates the |
JavaSynchronized |
|
This tag type indicates the |
JavaVarArgs |
|
This tag type indicates |
JavaTransient |
|
This tag type indicates the |
JavaVolatile |
|
This tag type indicates the |
JavaGetterVisibility |
|
This tag type defines the visibility of the |
JavaSetterVisibility |
|
This tag type defines the visibility of the |
JavaCollectionInterface |
|
This tag type defines the collection interface to use. |
JavaCollectionImpl |
|
This tag type defines the collection implementation to use. |
JavaNullSupport |
|
This tag type indicates the used collection accepts |
JavaThreadSafe |
|
This tag type indicates the used collection is thread-safe. |
JavaArrayDimension |
|
This tag type indicates the array level to use if the collection interface is set to |
JavaNoInitValue |
|
This tag type makes the generator skip the initialization of the field. |
JavaArguments |
|
This tag type specifies arguments to pass to the constructor. |
JavaFullName |
|
This tag type indicates a fully qualified name is to be generated for the element’s type. |
JavaBind |
|
This tag type defines template parameters to be bound to the value type definition. |
JavaWrapper |
|
This tag type forces usage of the wrapped class instead of the base type, for example use Integer instead of int. |
Annotation definition tags
Tag type | Applicable on | Usage |
---|---|---|
JavaDocumentedAnnotation |
|
This tag type annotates the type declaration with |
JavaInheritedAnnotation |
|
This tag type annotates the type declaration with |
JavaRetentionAnnotation |
|
This tag type annotates the type declaration with |
JavaTargetAnnotation |
|
This tag type annotates the type declaration with |
Java 9 module tags
Tag type | Applicable on | Usage |
---|---|---|
Open |
|
This tag type opens the module to the introspection API. |
JpmsOpen |
|
This tag type opens the package to the introspection API. |
Static |
|
This tag type indicates a required link is static. |
Generated |
|
This tag type indicates a required link has been automatically created. |
Reverse tags
![]() |
These tags are a way to make a degraded model when using external types that are currently not represented. They are often created by the reverse/update command when the *accessible classes* (aka classpath) are not properly configured in the project. In a few cases when the modeling is far too complicated to be useful. It is recommended to use them sparingly. |
Tag type | Applicable on | Usage |
---|---|---|
JavaExtern |
|
This tag type indicates an empty element created in order to not loose information after a reverse. |
JavaExtends |
|
This tag type adds hardcoded type(s) to extend. |
JavaImplements |
|
This tag type adds hardcoded interface(s) to implement. |
JavaImport |
|
This tag type adds hardcoded type(s) to import. |
JavaThrownException |
|
This tag type adds hardcoded thrown type(s). |
JavaTypeExpr |
|
This tag type indicates an hardcoded type signature to use. |
Requires |
|
This tag type indicates hardcoded required module(s) |
Exports |
|
This tag type indicateshardcoded exported package(s) |
Opens |
|
This tag type indicateshardcoded opened package(s) |
Uses |
|
This tag type indicateshardcoded used service interface(s) |
Provides |
|
This tag type indicateshardcoded provided service interface(s) |