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

javacomponent JavaComponent
jpmsmodule JpmsModule

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

javacomponent JavaComponent
jpmsmodule JpmsModule

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

javaclass JavaClass
javadatatype JavaDataType
javaenumeration JavaEnumeration
javainterface JavaInterface
javapackage JavaPackage
jpmsmodule JpmsModule
standard.associationend AssociationEnd
standard.attribute Attribute
standard.operation Operation

This tag type defines an alias to use in the java code instead of the UML name.

JavaNoCode

javaclass JavaClass
javadatatype JavaDataType
javaenumeration JavaEnumeration
javainterface JavaInterface
javaannotation JavaAnnotation
javapackage JavaPackage
standard.templateparameter TemplateParameter
standard.enumerationliteral EnumerationLiteral
standard.associationend AssociationEnd
standard.attribute Attribute
standard.operation Operation
standard.parameter Parameter
standard.generalization Generalization
standard.interfacerealization InterfaceRealization
standard.raisedexception RaisedException
standard.elementimport ElementImport
standard.packageimport PackageImport

This tag type indicates the element should be skipped at generation.
Usually, referencing a "no code" element from a "plain" one produces warnings or errors at generation.

JavaNoPackage

javapackage JavaPackage

This tag type indicates the package should be skipped when computing the java namespacing.

Signature tags

Tag type Applicable on Usage

JavaStatic

javaclass JavaClass
javadatatype JavaDataType
javaenumeration JavaEnumeration
javainterface JavaInterface

This tag type indicates the static keyword is to be generated for this element.

JavaFinal

standard.associationend AssociationEnd
standard.attribute Attribute
standard.parameter Parameter

This tag type indicates the final keyword is to be generated for this element.

JavaNative

standard.operation Operation

This tag type indicates the native keyword is to be generated for this element.

JavaStrict

standard.operation Operation

This tag type indicates the strictfp keyword is to be generated for this element.

JavaSynchronized

standard.operation Operation

This tag type indicates the synchronized keyword is to be generated for this element.

JavaVarArgs

standard.parameter Parameter

This tag type indicates …​ is to be generated after the parameter`s type.

JavaTransient

standard.associationend AssociationEnd
standard.attribute Attribute

This tag type indicates the transient keyword is to be generated for this element.

JavaVolatile

standard.associationend AssociationEnd
standard.attribute Attribute

This tag type indicates the volatile keyword is to be generated for this element.

JavaGetterVisibility

javaassociationendproperty JavaAssociationEndProperty
javaattributeproperty JavaAttributeProperty

This tag type defines the visibility of the get accessor of a property.

JavaSetterVisibility

javaassociationendproperty JavaAssociationEndProperty
javaattributeproperty JavaAttributeProperty

This tag type defines the visibility of the set accessor of a property.

JavaCollectionInterface

standard.associationend AssociationEnd
standard.attribute Attribute
standard.parameter Parameter

This tag type defines the collection interface to use.

JavaCollectionImpl

standard.associationend AssociationEnd
standard.attribute Attribute

This tag type defines the collection implementation to use.

JavaNullSupport

standard.associationend AssociationEnd
standard.attribute Attribute
standard.parameter Parameter

This tag type indicates the used collection accepts null objects.

JavaThreadSafe

standard.associationend AssociationEnd
standard.attribute Attribute
standard.parameter Parameter

This tag type indicates the used collection is thread-safe.

JavaArrayDimension

standard.associationend AssociationEnd
standard.attribute Attribute
standard.parameter Parameter

This tag type indicates the array level to use if the collection interface is set to Array.
For example, an int attribute with an array dimension set to 3 generates int [][][]

JavaNoInitValue

standard.associationend Java.AssociationEnd
standard.attribute Java.Attribute

This tag type makes the generator skip the initialization of the field.

JavaArguments

standard.enumerationliteral EnumerationLiteral

This tag type specifies arguments to pass to the constructor.

JavaFullName

standard.associationend AssociationEnd
standard.attribute Attribute
standard.elementimport ElementImport
standard.generalization Generalization
standard.interfacerealization InterfaceRealization
standard.packageimport PackageImport
standard.parameter Parameter
standard.raisedexception RaisedException
standard.templateparameter TemplateParameter

This tag type indicates a fully qualified name is to be generated for the element’s type.

JavaBind

standard.associationend AssociationEnd
standard.attribute Attribute
standard.generalization Generalization
standard.interfacerealization InterfaceRealization
standard.parameter Parameter

This tag type defines template parameters to be bound to the value type definition.

JavaWrapper

standard.attribute Attribute
standard.parameter Parameter

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

javaannotation JavaAnnotation

This tag type annotates the type declaration with @Documented, making it part of the public API of the annotated elements.

JavaInheritedAnnotation

javaannotation JavaAnnotation

This tag type annotates the type declaration with @Inherited, making it automatically inherited by sub-classes of annotated elements.

JavaRetentionAnnotation

javaannotation JavaAnnotation

This tag type annotates the type declaration with @Retention, indicating how long the annotated type is to be retained on annotated elements.

JavaTargetAnnotation

javaannotation JavaAnnotation

This tag type annotates the type declaration with @TargetSelect, indicating the contexts in which the annotation type is applicable.

Java 9 module tags

Tag type Applicable on Usage

Open

jpmsmodule JpmsModule

This tag type opens the module to the introspection API.

JpmsOpen

javapackage JavaPackage

This tag type opens the package to the introspection API.

Static

jpmsrequires JpmsRequires

This tag type indicates a required link is static.

Generated

jpmsrequires JpmsRequires

This tag type indicates a required link has been automatically created.
For information only. Do not use, reserved for internal use by the module only.

Reverse tags

Important 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

javaclass JavaClass
javadatatype JavaDataType
javaenumeration JavaEnumeration
javainterface JavaInterface
javapackage JavaPackage
jpmsmodule JpmsModule

This tag type indicates an empty element created in order to not loose information after a reverse.
As an external element is empty in the model, it is highly recommended either to update it, or to use a Model Component that contains it.
External elements are skipped at generation.

JavaExtends

javaclass JavaClass
javadatatype JavaDataType
javainterface JavaInterface
standard.templateparameter TemplateParameter

This tag type adds hardcoded type(s) to extend.

JavaImplements

javaclass JavaClass
javadatatype JavaDataType
javaenumeration JavaEnumeration

This tag type adds hardcoded interface(s) to implement.

JavaImport

javaclass JavaClass
javadatatype JavaDataType
javaenumeration JavaEnumeration
javainterface JavaInterface
javapackage JavaPackage

This tag type adds hardcoded type(s) to import.

JavaThrownException

standard.operation Operation

This tag type adds hardcoded thrown type(s).

JavaTypeExpr

standard.associationend AssociationEnd
standard.attribute Attribute
standard.parameter Parameter

This tag type indicates an hardcoded type signature to use.

Requires

jpmsmodule JpmsModule

This tag type indicates hardcoded required module(s)

Exports

jpmsmodule JpmsModule

This tag type indicateshardcoded exported package(s)

Opens

jpmsmodule JpmsModule

This tag type indicateshardcoded opened package(s)

Uses

jpmsmodule JpmsModule

This tag type indicateshardcoded used service interface(s)

Provides

jpmsmodule JpmsModule

This tag type indicateshardcoded provided service interface(s)