api / org.gradle.model / Model / <init>

<init>

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.

Creating managed model elements

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.

Creating non-managed model elements

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.