addValidationAnnotations
Description
If you activate this configuration toggle via the builder method withValidationAnnotations the generator scans the selected classes for the following Validation Annotations:
-
field annotations
-
javax.validation.constraints.Size
-
javax.validation.constraints.NotEmpty
-
jakarta.validation.constraints.Size
-
jakarta.validation.constraints.NotEmpty
-
If field annotations are found the generator will adapt the cardinality of AggregationRelationship to reflect the annotation.
This feature was previously activated via the withJavaxValidationAnnotations builder method in version between 2.3.0 and 2.4.0. |
Example
Here is an example from the JUnit tests using this configuration parameter:
List<String> scanPackages = new ArrayList<>();
scanPackages.add(packageUnderTest);
PlantUMLClassDiagramConfig config = new PlantUMLClassDiagramConfigBuilder(scanPackages).withValidationAnnotations(true)
.build(); (1)
PlantUMLClassDiagramGenerator generator = new PlantUMLClassDiagramGenerator(config);
String result = generator.generateDiagramText();
String expectedDiagramText = IOUtils.toString(Objects.requireNonNull(classLoader.getResource(expectedFileName)), StandardCharsets.UTF_8);
assertNotNull(result);
assertNotNull(expectedDiagramText);
assertEquals(expectedDiagramText.replaceAll("\\s+", ""), result.replaceAll("\\s+", ""));
which is rendered this way:
and produces this PlantUML diagram text:
@startuml
class de.elnarion.test.domain.t0028.Light {
}
class de.elnarion.test.domain.t0028.Seat {
}
class de.elnarion.test.domain.t0028.Vehicle {
}
class de.elnarion.test.domain.t0028.Wheel {
}
de.elnarion.test.domain.t0028.Vehicle "1" o-- "1..*" de.elnarion.test.domain.t0028.Light : lights
de.elnarion.test.domain.t0028.Vehicle "1" o-- "1..10" de.elnarion.test.domain.t0028.Seat : seats
de.elnarion.test.domain.t0028.Vehicle "1" o-- "2..6" de.elnarion.test.domain.t0028.Wheel : wheels
@enduml