Dependencies can be used between Services and Entities, they
won't need any stereotype assigned to them. These dependencies
are used to produce entity references (from a entity or service)
in the Spring applicationContext.xml and within
the Spring base classes (i.e. DaoBase and ServiceBase),
or to produce service references (from another service)
in the Spring applicationContext.xml and within
the ServiceBase classes.
Entity business operations can be set to classifier scope
instead of the usual instance scope. By doing so they
will be generated into the corresponding DAO for that entity instead
of the entity implementation class.
Entity query operations (i.e. finders) can be denoted by setting the
query flag on the modeled operation to true
(they do not require any stereotypes).
Actors represent roles within your model. To designate that a role
has access to a given service you must draw a dependency from an Actor
to the <<Service>>. To designate the
role has access to to a given operation, you must draw a dependency from
an Actor to the operation.
AndroMDA Spring Cartridge Profile
This profile contains all elements that can be applied on the model used as the
MDA transformation process. These elements are specific to the AndroMDA Spring Cartridge component.
Constants
Values of constants used in the Spring namespace.
Stereotypes
Stereotypes are the names you sometimes see appear in UML diagrams, they typically look
like <<MyStereotype>> and can be applied on any type of UML model element.
Tagged Values
Sometimes it happens you want to add information to the model but there is no clean way
of doing it. In those cases you may want to resort to tagged values, but these cases should
be considered with caution. A tagged value is something extra, something optional,
and the application should run fine without them.
The tagged values which apply to the Spring namespace.
Service(Back to Stereotypes) |
Applied on: class |
Either denotes a class is representing an EJB session bean or a Spring service. This service
is supposed to be used as a facade for a set of entities. If you want to use Spring services
instead of the default EJB session beans then you will need to remove the
session-ejbs outlet from the spring cartridge's namespace in the
andromda.xml configuration.
|
PrePersist(Back to Stereotypes) |
Applied on:
Entity Business Operation
|
Specifies that the associated operation will
be invoked before the entity is created.
|
PreRemove(Back to Stereotypes) |
Applied on:
Entity Business Operation
|
Specifies that the associated operation will
be invoked before the entity is deleted.
|
PreUpdate(Back to Stereotypes) |
Applied on:
Entity Business Operation
|
Specifies that the associated operation will
be invoked right before the database is updated.
|
PostUpdate(Back to Stereotypes) |
Applied on:
Entity Business Operation
|
Specifies that the associated operation will
be invoked immediately after the database has been
updated.
|
andromda_spring_transaction_type(Back to Tagged Values) |
Applied on: Service or Service Operation |
Defines a Spring transaction type for the service operation
(when NOT wrapped by EJBs). Using this tagged value on a service
will enable it on all of its operations. If this tagged value is present on such a
service operation it will take priority over any transaction declaration in a
broader scope such as its service or the global namespace.
|
Allowed values for this element:
- PROPAGATION_NEVER
- PROPAGATION_NESTED
- PROPAGATION_MANDATORY
- PROPAGATION_REQUIRED
- PROPAGATION_REQUIRES_NEW
- PROPAGATION_SUPPORTS
- PROPAGATION_NOT_SUPPORTED
|
andromda_hibernate_query(Back to Tagged Values) |
Applied on: An Entity operation marked as a
query.
|
Defines a hibernate query expression. Note that it's encouraged
to model your query body as an OCL constraint (instead of using
this tagged value).
|
andromda_spring_service_interceptors(Back to Tagged Values) |
Applied on: <<Service>> |
Sets a list of additional interceptors to be applied to the service's ProxyBeanFactory declaration.
They will be listed after the serviceSecurityInterceptor, serviceTransactionInterceptor and
hibernateInterceptor if present.
|
andromda_spring_service_config_only(Back to Tagged Values) |
Applied on: <<Service>> |
Set this tagged value to true in order to suppress generation of the bean class. The bean will be
listed in the applicationContext.xml files, however. The idea behind this tagged value is to enable
users to use Spring beans that are contained in Jar files,
e.g. org.springframework.security.authentication.rcp.RemoteAuthenticationManager.
|
Allowed values for this element:
|
andromda_service_private(Back to Tagged Values) |
Applied on: <<Service>> |
Set this tagged value to true in order to define the service as private. Private services are not
available through the ServiceLocator, are not exposed via remoting and their methods are not
intercepted by neither the transaction manager nor the security interceptor. The idea behind this
tagged value is to enable users to create services which could be used only via dependencies, not by
standalone instantiation.
|
Allowed values for this element:
|
andromda_hibernate_criteria_nullable(Back to Tagged Values) |
Applied on: an attribute of a <<Criteria>> class |
If this tagged value is set to true, the tagged attribute will be considered in the
search even if it is null. Use this feature to query entities that have attributes
that may be NULL (in the sense of SQL).
|
Allowed values for this element:
|
andromda_hibernate_criteria_attribute(Back to Tagged Values) |
Applied on: an attribute of a <<Criteria>> class |
Sets the name of the attribute on the hibernate entity that should be added to a criteria
search. If the attribute you want to search for is not in the entity itself, but rather in
an associated class, you can use a fully qualified name here. Assume you have two entites
Person and Address, the address being referenced as a one-to-one
relationship with the role name homeAddress and the address having an attribute
named "city". If you want to retrieve all people living in Hamburg, simply set the value of
this tagged value to homeAddress.city.
If you omit this tagged value, the name of the attribute in the criteria class will be used.
|
andromda_hibernate_criteria_comparator(Back to Tagged Values) |
Applied on: an attribute of a <<Criteria>> class |
Using this tagged value to define the logical condition for the underlying attribute in the query is set.
|
Allowed values for this element:
- like
- insensitive_like
- equal
- greater
- greater_equal
- less
- less_equal
- in
- not_equal
|
andromda_manageable_table_maxlistsize(Back to Constants) |
Applied on: A class with the <<Manageable>> stereotype |
The maximum number of rows to fetch from the database in a single operation. Tune this parameter
to avoid downloading thousands of rows each time, most of the time the user will want to use
the search facility to refine the result set
|
Allowed values for this element:
- a strictly positive integer
- 250 (default)
|
andromda_manageable_table_displayname(Back to Constants) |
Applied on: A class with the <<Manageable>> stereotype |
The column representing this entity,by default the first <<Unique>> attribute found
is taken but you might want to specify another column yourself. This value is used when one entity
has a foreign key to another one and you want to select the value of this foreign key
from a combobox and you would like to see a more meaningful label for each option, if no
<<Unique>> attribute is found the identifier is used, which isn't very helpful.
|
Allowed values for this element:
- any column name present in this entity
- the name of the identifier column (default)
|