Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#141 and #149 #150

Merged
merged 4 commits into from
Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ menubar: jmm_menu
---

# Stereotype `«Alias»`
Stereotype `«Alias»` can be used to express that an model element also has an alternative name. This might be helpful in case that there is a renaming of elements. Alternate name might be displayed in model report.
Stereotype `«Alias»` can be used to express that a model element also has an alternative name. This might be helpful in case that there is a renaming of elements. Alternate name might be displayed in model report.

<br>

Expand All @@ -15,7 +15,7 @@ Stereotype `«Alias»` can be used to express that an model element also has an
| **Applicable Elements** | `NamedElement` |
| **Tagged Values** | | |
| **Name** | **Type** | **Description** |
| `alternateName` | `String` | |
| `alternateName` | `String` | Alternate name for the model element. |



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ menubar: jmm_menu
---

# Stereotype `«BeanParam»`
Stereotype `«BeanParam»` is used to mark a class or parameter as so called bean parameter. Bean parameters can be used to group REST parameters together.
Stereotype `«BeanParam»` is used to mark a class or parameter as so called bean parameter. Bean parameters can be used to group REST parameters together.

This has mainly two benefits:

- Instead of defining the same set of parameters for every REST operation over and over again you can just use the bean parameter instead. This is a great help to keep the parameters of your REST services consistent among all operations.

- When it comes to code generation for Java service interfaces the bean parameter class is used as parameter of the operation instead of the individual parameters. This helps to have clearer interfaces and also ensure a better maintainability

Stereotype «BeanParam» on classes makes only sense when at least one of the attributes of the class is marked as REST parameter (stereotypes «PathParam», «HeaderParam», «QueryParam», «CookieParam»)
Stereotype `«BeanParam»` on classes makes only sense when at least one of the attributes of the class is marked as REST parameter (stereotypes `«PathParam»`, `«HeaderParam»`, `«QueryParam»`, `«CookieParam»`)

<br>

Expand All @@ -31,7 +31,7 @@ Stereotype «BeanParam» on classes makes only sense when at least one of the at
For further information please refer to:
- [«REST Resource»](/uml-modeling-guide/jmm/RESTResource)
- [«REST Operation»](/uml-modeling-guide/jmm/RESTOperation)
- [How to model REST Services](/uml-modeling-guide/how-to-model-rest-service-apis)
- [How to model REST Services](/uml-modeling-guide/how-tos/how-to-model-rest-service-apis)
- [Generating Code for REST Services](/developer-guide/code-for-jeaf-services)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ menubar: jmm_menu
---

# Stereotype `«BreakingChange»`
Stereotype `«BreakingChange»` can be used to mark model elements that are a breaking change compared to a previous version.
Stereotype `«BreakingChange»` can be used to mark model elements that are a breaking change compared to a previous version.

This is especially useful when you are working with semantic versioning approach. Using this stereotype you can then mark elements that break backward compatibility e.g. a new request property is introduced and after a transition phase it will be mandatory.
This is especially useful when you are working with semantic versioning approach. Using this stereotype you can then mark elements that break backward compatibility.

Example: a new request property is introduced and after a transition phase it will be mandatory.

JEAF Generator supports a so called breaking changes report that lists all the breaking changes.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Stereotype `«CompositeDataTypePublicField»` can be used for the name of the pu
<br>

For further information please refer to:
- [`«CompositeDataTypePublicField»`](/uml-modeling-guide/jmm/OpenAPIDataType)
- [`«OpenAPIDataType»`](/uml-modeling-guide/jmm/OpenAPIDataType)


<br>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ menubar: jmm_menu
# Stereotype `«DomainObject»`
Stereotype `«DomainObject»` is used to model domain objects. Domain objects can be used to build up the internal structures of a component. Domain objects are intended to be used to represent the domain model of a component when it does not need persistence or if a strict separation between persistence and domain objects is expected.

The stereotype itself does not define tagged values and is only a marker for JEAF Generator.

<br>

| **Stereotype** | `«DomainObject»` | |
Expand All @@ -22,7 +20,7 @@ The stereotype itself does not define tagged values and is only a marker for JEA
<br>

For further information please refer to:
- [How to model Domain Objects](/uml-modeling-guide/how-to-model-domain-objects)
- [How to model Domain Objects](/uml-modeling-guide/how-tos/how-to-model-domain-objects)
- [Generating Code for Domain Objects](/developer-guide/code-for-domain-objects)
- [JEAF Architecture Model - Business Object](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Business-Object)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Stereotype `«Example»` can be used to add example values to properties in the
| **Applicable Elements** | `Property` `Parameter` |
| **Tagged Values** | | |
| **Name** | **Type** | **Description** |
| `exampleValues` | `String` | Example value |
| `exampleValues` | `String` | Example values |



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ menubar: jmm_menu
---

# Stereotype `«Field»`
Stereotype `«Field»` is used to map attributes of persistent objects to a relational database. Due to that the stereotype can only be applied on classes with stereotype `«Persistent Object»`. Persistence frameworks will map attributes to the database using so called property mapping. This means that for every attribute there will be a row on the database. The mapping between Java and SQL type will be done automatically by default. Using tagged value sqlType it is also possible to define a custom mapping.
Stereotype `«Field»` is used to map attributes of persistent objects to a relational database. Due to that, the stereotype can only be applied on classes with stereotype `«Persistent Object»`. Persistence frameworks will map attributes to the database using so called property mapping. This means that for every attribute there will be a row on the database. The mapping between Java and SQL type will be done automatically by default. Using tagged value `sqlType` it is also possible to define a custom mapping.

Attributes of persistent classes which do not have stereotype «Field» are considered to be transient.
Attributes of persistent classes which do not have stereotype `«Field»` are considered to be transient.

<br>

Expand All @@ -32,7 +32,7 @@ Attributes of persistent classes which do not have stereotype «Field» are cons
<br>

For further information please refer to:
- [How to model Persistent Classes](/uml-modeling-guide/how-to-model-jeaf-persistence)
- [How to model Persistent Classes](/uml-modeling-guide/how-tos/how-to-model-jeaf-persistence)
- [Generating Code for Persistence](/developer-guide/code-for-jeaf-persistence)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ Stereotype `«HeaderParam»` is used to mark that a parameter of a REST operatio

<br>

For further information please refer to: - [`«REST Resource»`](/uml-modeling-guide/jmm/RESTResource) - [`«REST Operation»`](/uml-modeling-guide/jmm/RESTOperation) - [How to model REST Services](/uml-modeling-guide/how-to-model-rest-service-apis) - [Generating Code for REST Services](/developer-guide/code-for-jeaf-services)
For further information please refer to:
- [`«REST Resource»`](/uml-modeling-guide/jmm/RESTResource)
- [`«REST Operation»`](/uml-modeling-guide/jmm/RESTOperation)
- [How to model REST Services](/uml-modeling-guide/how-tos/how-to-model-rest-service-apis)
- [Generating Code for REST Services](/developer-guide/code-for-jeaf-services)


<br>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ menubar: jmm_menu
---

# Stereotype `«Interceptor»`
Stereotype `«Interceptor»` is used to mark classes as an interceptor. Interceptor will be called before and after a service invocation. As they tend to have a strong impact on the behavior of a component / service it’s recommended to already add them to the UML model.
Stereotype `«Interceptor»` is used to mark classes as an interceptor. Interceptors will be called before and after a service invocation. As they tend to have a strong impact on the behavior of a component / service it’s recommended to already add them to the UML model.

Stereotype «Interceptor» is JEAF Framework specific.
Stereotype `«Interceptor»` is JEAF Framework specific.

<br>

Expand All @@ -20,7 +20,7 @@ Stereotype «Interceptor» is JEAF Framework specific.
<br>

For further information please refer to:
- [How to model Components](/uml-modeling-guide/how-to-model-components)
- [How to model Components](/uml-modeling-guide/how-tos/how-to-model-jeaf-components)
- [Generating Code for Components](/developer-guide/code-for-jeaf-components)
- [JEAF Architecture Model - Interceptors](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Interceptor)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Components use activities to implement non-trivial functionality of the services
<br>

For further information please refer to:
- [How to model Activities](/uml-modeling-guide/how-to-model-activities)
- [How to model Activities](/uml-modeling-guide/how-tos/how-to-model-activities)
- [Generating Code for Activities](/developer-guide/code-for-jeaf-activities)
- [JEAF Architecture Model - Activity](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Activity)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ Please be aware that all settings will applied for all services that are impleme

<br>

For further information please refer to: - [How to model Components](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/546177607) - [Generating Code for Components](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/546047011) - [JEAF Architecture Model - Component](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Component ) - [JEAF Security](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/546210729)
For further information please refer to:
- [How to model Components](/uml-modeling-guide/how-tos/how-to-model-jeaf-components)
- [Generating Code for Components](/developer-guide/code-for-jeaf-components)
- [JEAF Architecture Model - Component](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Component )
- [JEAF Security](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/546210729)


<br>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ menubar: jmm_menu
---

# Stereotype `«JEAFService»`
Stereotype `«JEAFService»` is used to model services. The stereotype does not have any tagged values. It is only used as marker. Based on this stereotype JEAF Generator is able to identify service interfaces in an UML model and will generate the appropriate source code.
Stereotype `«JEAFService»` is used to model services. The stereotype does not have any tagged values and is only used as marker. Based on this stereotype JEAF Generator is able to identify service interfaces in an UML model and will generate the appropriate source code.

<br>

Expand All @@ -18,8 +18,8 @@ Stereotype `«JEAFService»` is used to model services. The stereotype does not
<br>

For further information please also refer to:
- [How to model Service Interfaces](/uml-modeling-guide/how-to-model-rest-service-apis)
- [Generating Code for Services](/developer-guide/code-for-jeaf-services/)
- [How to model Service Interfaces](/uml-modeling-guide/how-tos/how-to-model-rest-service-apis)
- [Generating Code for Services](/developer-guide/code-for-jeaf-services/)
- [JEAF Architecture Model - Service](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Service)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ Stereotype `«JEAFServiceProvider»` can be used to define so called service pro
<br>

For further information please refer to:
- [How to model Service Providers](/uml-modeling-guide/how-to-model-service-providers)
- [Generating Code for Service Providers](/developer-guide/code-for-jeaf-service-providers)
- [How to model Service Providers](/uml-modeling-guide/how-tos/how-to-model-service-providers)
- [Generating Code for Service Providers](/developer-guide/code-for-jeaf-service-providers)
- [JEAF Architecture Model - Service Provider](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Service-Provider)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ Stereotype `«JEAFServiceProviderImpl»` can be used to mark a class as an imple
<br>

For further information please refer to:
- [How to model Service Providers](/uml-modeling-guide/how-to-model-service-providers)
- [Generating Code for Service Providers](/developer-guide/code-for-jeaf-service-providers)
- [How to model Service Providers](/uml-modeling-guide/how-tos/how-to-model-service-providers)
- [Generating Code for Service Providers](/developer-guide/code-for-jeaf-service-providers)
- [JEAF Architecture Model - Service Provider](https://anaptecs.atlassian.net/wiki/spaces/JEAF/pages/515276970/JEAF+Architecture+Model#Service-Provider)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ menubar: jmm_menu
---

# Stereotype `«LoadStrategy»`
Stereotype `«Load Strategy»` is used to model so called load strategy objects. They can be used to tell a service which information should be returned from a service. Usage of load strategy pattern usually only makes sense when a rather big mesh of objects can be returned by a service. In such cases clients might not need all the information that will be returned. Using load strategy pattern clients can define the information they are expecting.
Stereotype `«Load Strategy»` is used to model so called load strategy objects. They can be used to tell a service which information should be returned. Usage of load strategy pattern usually only makes sense when a rather big mesh of objects can be returned by a service. In such cases clients might not need all the information that will be returned. Using load strategy pattern clients can define the information they are expecting.

To define which information are really needed a load strategy object defines a set of boolean fields representing parts of the service object model that might be returned by the service.
To define which information are really needed a load strategy object defines a set of `boolean` fields representing parts of the service object model that might be returned by the service.

<br>

Expand All @@ -20,7 +20,7 @@ To define which information are really needed a load strategy object defines a s
<br>

For further information please refer to:
- [How to model Load Strategy Objects](/uml-modeling-guide/how-to-model-rest-service-apis)
- [How to model Load Strategy Objects](/uml-modeling-guide/how-tos/how-to-model-rest-service-apis)
- [Generating Code for Load Strategy Objects](/developer-guide/code-for-jeaf-services/#code-for-load-strategy-objects)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Stereotype `«OAuthScope»` is used to define the scopes of a OAuth flow.
| **Tagged Values** | | |
| **Name** | **Type** | **Description** |
| `name` | `String` | Name of the scope e.g. `write:pets`. |
| `description` | `String` | Description of the scope e.g. ""modify pets in your account"" |
| `description` | `String` | Description of the scope e.g. `"modify pets in your account"` |

<br>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ menubar: jmm_menu
---

# Stereotype `«ObjectMapping»`
JEAF Generator offers the possibility to unburden developers from error-prawn and boring job of mapping objects from one into another. To do so a so called object mapping can be defined in the UML model by defining dependencies between attributes using stereotype `«ObjectMapping»`.
JEAF Generator offers the possibility to free developers from error-prawn and boring job of mapping objects from one into another. To do so, a so called object mapping can be defined in the UML model by defining dependencies between attributes using stereotype `«ObjectMapping»`.

Object mappings distinguish between creating, updating and reading of objects. As you will see below behavior of an object mapping can be defined for each of the cases. Besides attributes it’s also possible that operations are the source or target of an object mapping. Please see the explanation below on the cases when usage of operations as source and / or target is supported.
Object mappings distinguish between creating, updating and reading of objects. As you will see below, behavior of an object mapping can be defined for each of the cases. Besides attributes it’s also possible that operations are the source and / or target of an object mapping. Please see the explanation below on the cases when usage of operations as source and / or target is supported.

Object mapping between associations are not supported as this may cause heavy performance issues (aka n+1 select problem in ORM).

Expand All @@ -26,7 +26,7 @@ Object mapping between associations are not supported as this may cause heavy pe
<br>

For further information please refer to:
- [How to model Object Mappings](/uml-modeling-guide/how-to-model-object-mappings)
- [How to model Object Mappings](/uml-modeling-guide/how-tos/how-to-model-object-mappings)
- [Generating Code for Object Mappings](/developer-guide/code-for-object-mappings)


Expand Down
Loading