Model(value: String)
Denotes that the RuleSource method rule carrying this annotation creates a new top level element in the model space.
The method must advertise a name and type for the model element. The name is defined either by the name of the method, or the #value
of this annotation. The type is defined differently depending on whether the new element is Managed or not.
If the element is to be of a managed type, the method must return void
and receive the newly created instance as the first parameter. All other parameters are considered inputs.
It is an error for a @Model
rule to return void
and specify a non-managed type as the first parameter. It is an error for a @Model
rule to return void
and for the first parameter to be annotated with Path. It is an error for a @Model
rule to specify a managed type as the return type.
If the element is to be of a non-managed type, the method must return the newly created instance. All parameters are considered inputs. Please see RuleSource for more information on method rules.