Capacity Planning Application JDL Sample
In this JDL sample for a simple Data Model application, all entities and relationships are indicated in one single file, entities.jdl
.
application { // DOM [java.collectorClass] : [CapacityPlanning] } entity Country { // DOM [primary.keys] : [id] id String required, name String } entity Plant { // DOM [primary.keys] : [plantId] plantId String required, lat Double, lng Double, @Formula("(SELECT SUM(a.duration_in_hours) FROM activity a WHERE a.plant_id = db_gene_internal_id AND a.db_gene_internal_scenario_id = db_gene_internal_scenario_id)") durationInHours Double } entity Parameter { // DOM [single.row] : [true] // DOM [java.collectionName] : [Parameter] currentTime Instant } entity Resource { // DOM [primary.keys] : [id] id String required, name String } entity ResourceCapacity { quantity Integer min(1) } entity Activity { // DOM [primary.keys] : [id] id String required, name String, durationInHours Duration, dueDate Instant } entity Precedence { } entity Requirement { @DefaultValue("1") quantity Integer min(1) } entity Schedule { start Instant, end Instant } entity SolutionSummary { // DOM [single.row] : [true] start Instant, end Instant, timespan Integer } entity ResourceUsagePerDay { // DOM [primary.keys] : [day] day Integer, numberOfHours Integer } relationship ManyToOne { // DOM [affects.primary.key] : [true] Requirement{activity} to Activity{requirements}, // DOM [affects.primary.key] : [true] Requirement{resource} to Resource{requirements}, // DOM [affects.primary.key] : [true] Precedence{first} to Activity{successors}, // DOM [affects.primary.key] : [true] Precedence{second} to Activity{predecessors}, // DOM [affects.primary.key] : [true] Schedule{resource} to Resource{schedules} // DOM [affects.primary.key] : [true] Schedule{activity} to Activity{schedules} // DOM [affects.primary.key] : [true] ResourceUsagePerDay{resource} to Resource{usagePerDay} // DOM [affects.primary.key] : [true] Plant{country} to Country{plants} // DOM [affects.primary.key] : [true] Activity{plant} to Plant{activities} } relationship OneToOne { // DOM [affects.primary.key] : [true] ResourceCapacity{resource} to Resource{capacity} }