From d4b0c7b4b6dbb518a72eef7510b6f39bb02fc6d9 Mon Sep 17 00:00:00 2001 From: Christos Tranoris <tranoris@ece.upatras.gr> Date: Sat, 11 Jan 2025 02:23:20 +0200 Subject: [PATCH] fixes for offsetdates --- .gitignore | 1 + .../tmf/pm628/model/DayOfMonthRecurrence.java | 11 +- .../tmf/pm628/model/DayOfWeekRecurrence.java | 13 +- .../org/etsi/osl/tmf/pm628/model/Event.java | 15 ++- .../osl/tmf/pm628/model/ManagementJobFVO.java | 1 + .../osl/tmf/pm628/model/ManagementJobMVO.java | 1 + .../tmf/pm628/model/MeasurementJobFVO.java | 1 + .../tmf/pm628/model/MeasurementJobMVO.java | 1 + .../PerformanceIndicatorSpecificationMVO.java | 1 - ...rformanceIndicatorSpecificationRefMVO.java | 1 - .../tmf/pm628/model/ScheduleDefinition.java | 114 ++++++++++++++++-- .../pm628/model/ScheduleDefinitionFVO.java | 100 +++++++++++++-- .../pm628/model/ScheduleDefinitionMVO.java | 104 +++++++++++++++- 13 files changed, 333 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index 59e9a26..00277ef 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /.classpath /.settings *.iml +/.factorypath diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfMonthRecurrence.java b/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfMonthRecurrence.java index 72bf9f6..ef8d3d5 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfMonthRecurrence.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfMonthRecurrence.java @@ -33,7 +33,6 @@ public class DayOfMonthRecurrence { @Column(name = "domr_schema_location") private String schemaLocation; - @JsonProperty("dates") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime dates; @@ -120,6 +119,16 @@ public class DayOfMonthRecurrence { @Valid @Schema(name = "dates", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("dates") + public String getDatesString() { + return dates.toString(); + } + + public void setDates(String dates) { + if ( dates!= null ) { + this.dates = OffsetDateTime.parse( dates ); + } + } + public OffsetDateTime getDates() { return dates; } diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfWeekRecurrence.java b/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfWeekRecurrence.java index 38c6a53..b8bfefe 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfWeekRecurrence.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/DayOfWeekRecurrence.java @@ -33,7 +33,6 @@ public class DayOfWeekRecurrence { @Column(name = "dowr_schema_location") private String schemaLocation; - @JsonProperty("dates") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime dates; @@ -119,11 +118,21 @@ public class DayOfWeekRecurrence { */ @Valid @Schema(name = "dates", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @JsonProperty("dates") public OffsetDateTime getDates() { return dates; } + + @JsonProperty("dates") + public String getDatesString() { + return dates.toString(); + } + public void setDates(String dates) { + if ( dates!= null ) { + this.dates = OffsetDateTime.parse( dates ); + } + } + public void setDates(OffsetDateTime dates) { this.dates = dates; } diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/Event.java b/src/main/java/org/etsi/osl/tmf/pm628/model/Event.java index 91a9489..15be3c3 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/Event.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/Event.java @@ -73,7 +73,7 @@ public class Event { @JsonProperty("eventId") protected String eventId= UUID.randomUUID().toString(); - @JsonProperty("eventTime") + @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) protected OffsetDateTime eventTime = OffsetDateTime.now(ZoneOffset.UTC); @@ -441,14 +441,25 @@ public class Event { */ @Valid @Schema(name = "eventTime", description = "Time of the event occurrence.", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @JsonProperty("eventTime") public OffsetDateTime getEventTime() { return eventTime; } + + @JsonProperty("eventTime") + public String getEventTimeString() { + return eventTime.toString(); + } + public void setEventTime(OffsetDateTime eventTime) { this.eventTime = eventTime; } + + public void setEventTime(String eventTime) { + if ( eventTime!= null ) { + this.eventTime = OffsetDateTime.parse( eventTime ); + } +} public Event eventType(String eventType) { this.eventType = eventType; diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobFVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobFVO.java index 2172a35..8ac27c8 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobFVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobFVO.java @@ -23,6 +23,7 @@ import java.util.Objects; */ @JsonIgnoreProperties( + ignoreUnknown = true, value = "@type", // ignore manually set @type, it will be automatically generated by Jackson during serialization allowSetters = true // allows the @type to be set during deserialization ) diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobMVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobMVO.java index 68ff0fa..fce75a1 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobMVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/ManagementJobMVO.java @@ -18,6 +18,7 @@ import java.util.Objects; */ @JsonIgnoreProperties( + ignoreUnknown = true, value = "@type", // ignore manually set @type, it will be automatically generated by Jackson during serialization allowSetters = true // allows the @type to be set during deserialization ) diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobFVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobFVO.java index db2ace7..4c321c7 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobFVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobFVO.java @@ -20,6 +20,7 @@ import java.util.Objects; */ @JsonIgnoreProperties( + ignoreUnknown = true, value = "@type", // ignore manually set @type, it will be automatically generated by Jackson during serialization allowSetters = true // allows the @type to be set during deserialization ) diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobMVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobMVO.java index 9b76533..02d6e76 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobMVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/MeasurementJobMVO.java @@ -18,6 +18,7 @@ import java.util.Objects; */ @JsonIgnoreProperties( + ignoreUnknown = true, value = "@type", // ignore manually set @type, it will be automatically generated by Jackson during serialization allowSetters = true // allows the @type to be set during deserialization ) diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationMVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationMVO.java index 49d20a9..a84bab6 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationMVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationMVO.java @@ -32,7 +32,6 @@ public class PerformanceIndicatorSpecificationMVO implements PerformanceIndicato @JsonProperty("href") private String href; - @JsonProperty("uuid") private String uuid; @JsonProperty("name") diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationRefMVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationRefMVO.java index 383da55..d1f799e 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationRefMVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/PerformanceIndicatorSpecificationRefMVO.java @@ -27,7 +27,6 @@ public class PerformanceIndicatorSpecificationRefMVO implements PerformanceIndic @JsonProperty("href") private String href; - @JsonProperty("uuid") private String uuid; @JsonProperty("name") diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinition.java b/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinition.java index 570ee15..cb8ede2 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinition.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinition.java @@ -9,9 +9,11 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.annotation.Generated; import java.time.OffsetDateTime; +import java.time.format.DateTimeParseException; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * ScheduleDefinition @@ -22,18 +24,15 @@ import java.util.Objects; @Entity(name = "PM628_SchedDef") public class ScheduleDefinition extends BaseRootEntity { - @JsonProperty("scheduleDefinitionStartTime") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime scheduleDefinitionStartTime; - @JsonProperty("scheduleDefinitionEndTime") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime scheduleDefinitionEndTime; @JsonProperty("recurringFrequency") private String recurringFrequency; - @JsonProperty("excludedDate") @Valid private List<OffsetDateTime> excludedDate = new ArrayList<>(); @@ -49,7 +48,6 @@ public class ScheduleDefinition extends BaseRootEntity { ) private List<DayOfWeekRecurrence> weeklyScheduledDefinition = new ArrayList<>(); - @JsonProperty("monthlyScheduleDayOfMonthDefinition") @Valid private List<OffsetDateTime> monthlyScheduleDayOfMonthDefinition = new ArrayList<>(); @@ -57,7 +55,6 @@ public class ScheduleDefinition extends BaseRootEntity { @Embedded private MonthlyScheduleDayOfWeekDefinition monthlyScheduleDayOfWeekDefinition; - @JsonProperty("dateScheduleDefintion") @Valid private List<OffsetDateTime> dateScheduleDefintion = new ArrayList<>(); @@ -83,10 +80,22 @@ public class ScheduleDefinition extends BaseRootEntity { */ @Valid @Schema(name = "scheduleDefinitionStartTime", description = "The Start time of the Schedule Definition", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @JsonProperty("scheduleDefinitionStartTime") + public OffsetDateTime getScheduleDefinitionStartTime() { return scheduleDefinitionStartTime; } + + @JsonProperty("scheduleDefinitionStartTime") + public String getScheduleDefinitionStartTimeString() { + return scheduleDefinitionStartTime.toString(); + } + + + public void setScheduleDefinitionStartTime(String t) { + if ( t!= null ) { + this.scheduleDefinitionStartTime = OffsetDateTime.parse( t ); + } + } public void setScheduleDefinitionStartTime(OffsetDateTime scheduleDefinitionStartTime) { this.scheduleDefinitionStartTime = scheduleDefinitionStartTime; @@ -103,10 +112,21 @@ public class ScheduleDefinition extends BaseRootEntity { */ @Valid @Schema(name = "scheduleDefinitionEndTime", description = "The End time of the Schedule Definition. If the attribute is empty the Schedule run forever, not having a time constraint.", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @JsonProperty("scheduleDefinitionEndTime") + public OffsetDateTime getScheduleDefinitionEndTime() { return scheduleDefinitionEndTime; } + + @JsonProperty("scheduleDefinitionEndTime") + public String getScheduleDefinitionEndTimeString() { + return scheduleDefinitionEndTime.toString(); + } + + public void setScheduleDefinitionEndTime(String t) { + if ( t!= null ) { + this.scheduleDefinitionEndTime = OffsetDateTime.parse( t ); + } +} public void setScheduleDefinitionEndTime(OffsetDateTime scheduleDefinitionEndTime) { this.scheduleDefinitionEndTime = scheduleDefinitionEndTime; @@ -151,15 +171,40 @@ public class ScheduleDefinition extends BaseRootEntity { */ @Valid @Schema(name = "excludedDate", description = "A list of specific dates that should be excluded from the Schedule Definition.", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @JsonProperty("excludedDate") + public List<OffsetDateTime> getExcludedDate() { return excludedDate; + + } + + @JsonProperty("excludedDate") + public List<String> getExcludedDateString() { + // Transforming List<OffsetDateTime> to List<String> + List<String> stringList = excludedDate.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; } public void setExcludedDate(List<OffsetDateTime> excludedDate) { this.excludedDate = excludedDate; } + @JsonProperty("excludedDate") + public void setExcludedDateString(List<String> excludedDate) { + this.excludedDate = excludedDate.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } + public ScheduleDefinition scheduleDefinitionHourRange(String scheduleDefinitionHourRange) { this.scheduleDefinitionHourRange = scheduleDefinitionHourRange; return this; @@ -227,14 +272,39 @@ public class ScheduleDefinition extends BaseRootEntity { */ @Valid @Schema(name = "monthlyScheduleDayOfMonthDefinition", description = "The schedule definition for running the threshold job", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @JsonProperty("monthlyScheduleDayOfMonthDefinition") + public List<OffsetDateTime> getMonthlyScheduleDayOfMonthDefinition() { return monthlyScheduleDayOfMonthDefinition; } + + @JsonProperty("monthlyScheduleDayOfMonthDefinition") + public List<String> getMonthlyScheduleDayOfMonthDefinitionString() { + // Transforming List<OffsetDateTime> to List<String> + List<String> stringList = monthlyScheduleDayOfMonthDefinition.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } public void setMonthlyScheduleDayOfMonthDefinition(List<OffsetDateTime> monthlyScheduleDayOfMonthDefinition) { this.monthlyScheduleDayOfMonthDefinition = monthlyScheduleDayOfMonthDefinition; } + + @JsonProperty("monthlyScheduleDayOfMonthDefinition") + public void setMonthlyScheduleDayOfMonthDefinitionString(List<String> monthlyScheduleDayOfMonthDefinition) { + + this.monthlyScheduleDayOfMonthDefinition = monthlyScheduleDayOfMonthDefinition.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } public ScheduleDefinition monthlyScheduleDayOfWeekDefinition(MonthlyScheduleDayOfWeekDefinition monthlyScheduleDayOfWeekDefinition) { this.monthlyScheduleDayOfWeekDefinition = monthlyScheduleDayOfWeekDefinition; @@ -275,15 +345,39 @@ public class ScheduleDefinition extends BaseRootEntity { */ @Valid @Schema(name = "dateScheduleDefintion", description = "The date schedule is used to define a schedule that is based on specific dates, such as December 31st 2015, February 28th 2013", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @JsonProperty("dateScheduleDefintion") + public List<OffsetDateTime> getDateScheduleDefintion() { return dateScheduleDefintion; } + + @JsonProperty("dateScheduleDefintion") + public List<String> getDateScheduleDefintionString() { + List<String> stringList = dateScheduleDefintion.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } + public void setDateScheduleDefintion(List<OffsetDateTime> dateScheduleDefintion) { this.dateScheduleDefintion = dateScheduleDefintion; } + @JsonProperty("dateScheduleDefintion") + public void setDateScheduleDefintionString(List<String> dateScheduleDefintion) { + this.dateScheduleDefintion = dateScheduleDefintion.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionFVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionFVO.java index bbb498f..8df65f1 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionFVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionFVO.java @@ -8,9 +8,11 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.annotation.Generated; import java.time.OffsetDateTime; +import java.time.format.DateTimeParseException; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * ScheduleDefinitionFVO @@ -29,36 +31,28 @@ public class ScheduleDefinitionFVO { @JsonProperty("@schemaLocation") private String schemaLocation; - @JsonProperty("scheduleDefinitionStartTime") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime scheduleDefinitionStartTime; - @JsonProperty("scheduleDefinitionEndTime") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime scheduleDefinitionEndTime; @JsonProperty("recurringFrequency") private String recurringFrequency; - @JsonProperty("excludedDate") @Valid private List<OffsetDateTime> excludedDate = new ArrayList<>(); - @JsonProperty("scheduleDefinitionHourRange") private String scheduleDefinitionHourRange; - @JsonProperty("WeeklyScheduledDefinition") @Valid private List<DayOfWeekRecurrenceFVO> weeklyScheduledDefinition = new ArrayList<>(); - @JsonProperty("monthlyScheduleDayOfMonthDefinition") @Valid private List<OffsetDateTime> monthlyScheduleDayOfMonthDefinition = new ArrayList<>(); - @JsonProperty("MonthlyScheduleDayOfWeekDefinition") private MonthlyScheduleDayOfWeekDefinitionFVO monthlyScheduleDayOfWeekDefinition; - @JsonProperty("dateScheduleDefintion") @Valid private List<OffsetDateTime> dateScheduleDefintion = new ArrayList<>(); @@ -144,7 +138,18 @@ public class ScheduleDefinitionFVO { */ @Valid @Schema(name = "scheduleDefinitionStartTime", description = "The Start time of the Schedule Definition", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @JsonProperty("scheduleDefinitionStartTime") + public String getScheduleDefinitionStartTimeString() { + return scheduleDefinitionStartTime.toString(); + } + + + public void setScheduleDefinitionStartTime(String t) { + if ( t!= null ) { + this.scheduleDefinitionStartTime = OffsetDateTime.parse( t ); + } + } public OffsetDateTime getScheduleDefinitionStartTime() { return scheduleDefinitionStartTime; } @@ -165,6 +170,16 @@ public class ScheduleDefinitionFVO { @Valid @Schema(name = "scheduleDefinitionEndTime", description = "The End time of the Schedule Definition. If the attribute is empty the Schedule run forever, not having a time constraint.", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("scheduleDefinitionEndTime") + public String getScheduleDefinitionEndTimeString() { + return scheduleDefinitionEndTime.toString(); + } + + public void setScheduleDefinitionEndTime(String t) { + if ( t!= null ) { + this.scheduleDefinitionEndTime = OffsetDateTime.parse( t ); + } +} + public OffsetDateTime getScheduleDefinitionEndTime() { return scheduleDefinitionEndTime; } @@ -213,6 +228,29 @@ public class ScheduleDefinitionFVO { @Valid @Schema(name = "excludedDate", description = "A list of specific dates that should be excluded from the Schedule Definition.", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("excludedDate") + public List<String> getExcludedDateString() { + // Transforming List<OffsetDateTime> to List<String> + List<String> stringList = excludedDate.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } + + + @JsonProperty("excludedDate") + public void setExcludedDateString(List<String> excludedDate) { + this.excludedDate = excludedDate.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } public List<OffsetDateTime> getExcludedDate() { return excludedDate; } @@ -289,6 +327,30 @@ public class ScheduleDefinitionFVO { @Valid @Schema(name = "monthlyScheduleDayOfMonthDefinition", description = "The schedule definition for running the threshold job", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("monthlyScheduleDayOfMonthDefinition") + public List<String> getMonthlyScheduleDayOfMonthDefinitionString() { + // Transforming List<OffsetDateTime> to List<String> + List<String> stringList = monthlyScheduleDayOfMonthDefinition.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } + + @JsonProperty("monthlyScheduleDayOfMonthDefinition") + public void setMonthlyScheduleDayOfMonthDefinitionString(List<String> monthlyScheduleDayOfMonthDefinition) { + + this.monthlyScheduleDayOfMonthDefinition = monthlyScheduleDayOfMonthDefinition.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } + public List<OffsetDateTime> getMonthlyScheduleDayOfMonthDefinition() { return monthlyScheduleDayOfMonthDefinition; } @@ -337,6 +399,28 @@ public class ScheduleDefinitionFVO { @Valid @Schema(name = "dateScheduleDefintion", description = "The date schedule is used to define a schedule that is based on specific dates, such as December 31st 2015, February 28th 2013", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("dateScheduleDefintion") + public List<String> getDateScheduleDefintionString() { + List<String> stringList = dateScheduleDefintion.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } + + + @JsonProperty("dateScheduleDefintion") + public void setDateScheduleDefintionString(List<String> dateScheduleDefintion) { + this.dateScheduleDefintion = dateScheduleDefintion.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } public List<OffsetDateTime> getDateScheduleDefintion() { return dateScheduleDefintion; } diff --git a/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionMVO.java b/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionMVO.java index 9f4e792..1ac9419 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionMVO.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/model/ScheduleDefinitionMVO.java @@ -8,9 +8,11 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.annotation.Generated; import java.time.OffsetDateTime; +import java.time.format.DateTimeParseException; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * ScheduleDefinitionMVO @@ -32,36 +34,30 @@ public class ScheduleDefinitionMVO { @JsonProperty("uuid") private String uuid; - @JsonProperty("scheduleDefinitionStartTime") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime scheduleDefinitionStartTime; - @JsonProperty("scheduleDefinitionEndTime") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private OffsetDateTime scheduleDefinitionEndTime; @JsonProperty("recurringFrequency") private String recurringFrequency; - @JsonProperty("excludedDate") @Valid private List<OffsetDateTime> excludedDate = new ArrayList<>(); @JsonProperty("scheduleDefinitionHourRange") private String scheduleDefinitionHourRange; - @JsonProperty("WeeklyScheduledDefinition") @Valid private List<DayOfWeekRecurrenceMVO> weeklyScheduledDefinition = new ArrayList<>(); - @JsonProperty("monthlyScheduleDayOfMonthDefinition") @Valid private List<OffsetDateTime> monthlyScheduleDayOfMonthDefinition = new ArrayList<>(); @JsonProperty("MonthlyScheduleDayOfWeekDefinition") private MonthlyScheduleDayOfWeekDefinitionMVO monthlyScheduleDayOfWeekDefinition; - @JsonProperty("dateScheduleDefintion") @Valid private List<OffsetDateTime> dateScheduleDefintion = new ArrayList<>(); @@ -167,10 +163,24 @@ public class ScheduleDefinitionMVO { */ @Valid @Schema(name = "scheduleDefinitionStartTime", description = "The Start time of the Schedule Definition", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @JsonProperty("scheduleDefinitionStartTime") + public String getScheduleDefinitionStartTimeString() { + return scheduleDefinitionStartTime.toString(); + } + + + public void setScheduleDefinitionStartTime(String t) { + if ( t!= null ) { + this.scheduleDefinitionStartTime = OffsetDateTime.parse( t ); + } + } + public OffsetDateTime getScheduleDefinitionStartTime() { return scheduleDefinitionStartTime; } + + public void setScheduleDefinitionStartTime(OffsetDateTime scheduleDefinitionStartTime) { this.scheduleDefinitionStartTime = scheduleDefinitionStartTime; @@ -188,6 +198,15 @@ public class ScheduleDefinitionMVO { @Valid @Schema(name = "scheduleDefinitionEndTime", description = "The End time of the Schedule Definition. If the attribute is empty the Schedule run forever, not having a time constraint.", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("scheduleDefinitionEndTime") + public String getScheduleDefinitionEndTimeString() { + return scheduleDefinitionEndTime.toString(); + } + + public void setScheduleDefinitionEndTime(String t) { + if ( t!= null ) { + this.scheduleDefinitionEndTime = OffsetDateTime.parse( t ); + } +} public OffsetDateTime getScheduleDefinitionEndTime() { return scheduleDefinitionEndTime; } @@ -235,7 +254,32 @@ public class ScheduleDefinitionMVO { */ @Valid @Schema(name = "excludedDate", description = "A list of specific dates that should be excluded from the Schedule Definition.", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @JsonProperty("excludedDate") + public List<String> getExcludedDateString() { + // Transforming List<OffsetDateTime> to List<String> + List<String> stringList = excludedDate.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } + + + @JsonProperty("excludedDate") + public void setExcludedDateString(List<String> excludedDate) { + this.excludedDate = excludedDate.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } + public List<OffsetDateTime> getExcludedDate() { return excludedDate; } @@ -311,7 +355,31 @@ public class ScheduleDefinitionMVO { */ @Valid @Schema(name = "monthlyScheduleDayOfMonthDefinition", description = "The schedule definition for running the threshold job", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + + @JsonProperty("monthlyScheduleDayOfMonthDefinition") + public List<String> getMonthlyScheduleDayOfMonthDefinitionString() { + // Transforming List<OffsetDateTime> to List<String> + List<String> stringList = monthlyScheduleDayOfMonthDefinition.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } + @JsonProperty("monthlyScheduleDayOfMonthDefinition") + public void setMonthlyScheduleDayOfMonthDefinitionString(List<String> monthlyScheduleDayOfMonthDefinition) { + + this.monthlyScheduleDayOfMonthDefinition = monthlyScheduleDayOfMonthDefinition.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } public List<OffsetDateTime> getMonthlyScheduleDayOfMonthDefinition() { return monthlyScheduleDayOfMonthDefinition; } @@ -359,7 +427,31 @@ public class ScheduleDefinitionMVO { */ @Valid @Schema(name = "dateScheduleDefintion", description = "The date schedule is used to define a schedule that is based on specific dates, such as December 31st 2015, February 28th 2013", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @JsonProperty("dateScheduleDefintion") + public List<String> getDateScheduleDefintionString() { + List<String> stringList = dateScheduleDefintion.stream() + .map(OffsetDateTime::toString) + .collect(Collectors.toList()); + return stringList; + } + + + @JsonProperty("dateScheduleDefintion") + public void setDateScheduleDefintionString(List<String> dateScheduleDefintion) { + this.dateScheduleDefintion = dateScheduleDefintion.stream() + .map(date -> { + try { + return OffsetDateTime.parse(date); + } catch (DateTimeParseException e) { + // Handle parse exception + System.err.println("Invalid date format: " + date); + return null; // or handle it as per your requirement + } + }) + .collect(Collectors.toList()); + } + public List<OffsetDateTime> getDateScheduleDefintion() { return dateScheduleDefintion; } -- GitLab