This repository was archived by the owner on Jun 11, 2026. It is now read-only.
File tree Expand file tree Collapse file tree
src/main/java/de/kaleidox/workbench/model Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package de .kaleidox .workbench .model .entry ;
2+
3+ import java .time .LocalDateTime ;
4+
5+ public interface Timeframe {
6+ static void validateTimeframe (LocalDateTime startTime , LocalDateTime endTime ) {
7+ if (startTime .isAfter (endTime )) throw new IllegalArgumentException ("Start Time cannot be after End Time" );
8+ }
9+
10+ LocalDateTime getStartTime ();
11+
12+ LocalDateTime getEndTime ();
13+ }
Original file line number Diff line number Diff line change 11package de .kaleidox .workbench .model .jpa .timetable ;
22
33import com .fasterxml .jackson .annotation .JsonIgnore ;
4+ import de .kaleidox .workbench .model .entry .Timeframe ;
45import de .kaleidox .workbench .model .jpa .representant .User ;
56import de .kaleidox .workbench .repo .UserRepository ;
67import de .kaleidox .workbench .util .ApplicationContextProvider ;
1617@ Data
1718@ Embeddable
1819@ EqualsAndHashCode (of = "user" )
19- public class Assignment {
20+ public class Assignment implements Timeframe {
2021 public static Assignment parse (String parse ) {
2122 var split = parse .split (": *" );
2223 var username = split [0 ];
@@ -52,5 +53,9 @@ public record CreateData(
5253 @ Nullable LocalDateTime startTime ,
5354 @ Nullable LocalDateTime endTime ,
5455 @ Nullable String notes
55- ) {}
56+ ) {
57+ public CreateData {
58+ if (startTime != null && endTime != null ) Timeframe .validateTimeframe (startTime , endTime );
59+ }
60+ }
5661}
Original file line number Diff line number Diff line change 11package de .kaleidox .workbench .model .jpa .timetable ;
22
33import com .fasterxml .jackson .annotation .JsonIgnore ;
4+ import de .kaleidox .workbench .model .entry .Timeframe ;
45import de .kaleidox .workbench .model .jpa .representant .User ;
56import de .kaleidox .workbench .model .jpa .representant .customer .Customer ;
67import de .kaleidox .workbench .model .jpa .representant .customer .Department ;
2728@ Entity
2829@ IdClass (TimetableEntry .CompositeKey .class )
2930@ EqualsAndHashCode (of = { "customer" , "department" , "startTime" })
30- public class TimetableEntry {
31+ public class TimetableEntry implements Timeframe {
3132 public static final DateTimeFormatter DATE_FORMATTER = ofPattern ("EE dd.MM.yy" );
3233 public static final DateTimeFormatter HOUR_FORMATTER = ofPattern ("HH:mm" );
3334 @ Id @ ManyToOne Customer customer ;
@@ -90,5 +91,9 @@ public record CreateData(
9091 @ NotNull LocalDateTime startTime ,
9192 @ NotNull LocalDateTime endTime ,
9293 @ Nullable String notes
93- ) {}
94+ ) {
95+ public CreateData {
96+ Timeframe .validateTimeframe (startTime , endTime );
97+ }
98+ }
9499}
You can’t perform that action at this time.
0 commit comments