This project is a spin-off from JHipster's UML model which has a main goal to bring support of UML (more precisely, XMI) files (from various editors) to JHipster. Vagabond-UML uses a similar but enhanced model. Scroll down for further information.
We support: Modelio, UML Designer, GenMyModel and Visual Paradigm... and our DSL!
Here is a brief roadmap
- Entity model
- Service model
- Relation model
- Annotation model
- Entity level annotations
- Use entity level annotations instead of
-
dto
-
pagination
definitions
-
- Field level annotations
- XMI support
- UML Designer
Entities are used to form the data model
entity Job {
Long jobId
String jobTitle
Long minSalary
Long maxSalary
}
In this example a Job
entity is defined with 4 attributes:
jobId
with typeLong
,jobTitle
with typeString
,minSalary
with typeLong
, and amaxSalary
with typeLong
Services represent an operational endpoint as in REST endpoints and hold several operations (functions) together.
service Manager {
void assign(Department department, Employee employee)
Long countEmployees()
}
This example defines a Manager
service with two functions:
-
void assign(Department department, Employee employee)
assign
method with a return type ofvoid
(nothing returned) and two parameters oneDepartment
and anEmployee
-
Long countEmployees()
countEmployees
method returning a Long
value with no parameters.
Relations bind Entities together.
Annotations are used to represent special characteristics of Entites or Entity attributes.
@paginate(pagination)
entity Job {
Long jobId
String jobTitle
}
In this example Job
entity has the @paginate
annotation with pagination
property.
@dto(mapstruct)
entity JobHistory {
startDate ZonedDateTime,
endDate ZonedDateTime
}
In this example @dto
annotation is applied on the JobHistory
entity with mapstruct
property.
Annotations can be combined.
@dto(mapstruct)
@paginate(infinite-scroll)
entity Employee {
Long employeeId
String fullName
}
In this example @dto
and @paginate
annotations are applied together on the
Employee
entity.