From 7cd3f69278d8a64d62d4550f8fff4ab520456e81 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Tue, 12 Aug 2025 22:17:29 +0300 Subject: [PATCH 01/13] fix for #26 --- .../etsi/osl/tmf/pcm620/model/EventSubscription.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java index aa61f7b..6896d41 100644 --- a/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java @@ -26,6 +26,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.springframework.validation.annotation.Validated; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import jakarta.validation.constraints.NotNull; /** @@ -35,7 +40,12 @@ import jakarta.validation.constraints.NotNull; @Validated @jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@Entity(name = "ProductEventSubscription") +@Table(name = "ProductEventSubscription") public class EventSubscription { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) @JsonProperty("id") private String id = null; -- GitLab From ff6544b4b623ffab660452d2574e39b59a6ee707 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 13 Aug 2025 00:04:48 +0300 Subject: [PATCH 02/13] added Catalog create delete notifications --- .../model/CatalogCreateNotification.java | 97 +++++++++++++++++++ .../model/CatalogDeleteNotification.java | 97 +++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteNotification.java diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateNotification.java new file mode 100644 index 0000000..a8f449a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for catalog create events + */ +@Schema(description = "The notification data structure for catalog create events") +@Validated +public class CatalogCreateNotification extends Notification { + + @JsonProperty("event") + private CatalogCreateEvent event = null; + + public CatalogCreateNotification event(CatalogCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public CatalogCreateEvent getEvent() { + return event; + } + + public void setEvent(CatalogCreateEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogCreateNotification catalogCreateNotification = (CatalogCreateNotification) o; + return Objects.equals(this.event, catalogCreateNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogCreateNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteNotification.java new file mode 100644 index 0000000..9236021 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for catalog delete events + */ +@Schema(description = "The notification data structure for catalog delete events") +@Validated +public class CatalogDeleteNotification extends Notification { + + @JsonProperty("event") + private CatalogDeleteEvent event = null; + + public CatalogDeleteNotification event(CatalogDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public CatalogDeleteEvent getEvent() { + return event; + } + + public void setEvent(CatalogDeleteEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogDeleteNotification catalogDeleteNotification = (CatalogDeleteNotification) o; + return Objects.equals(this.event, catalogDeleteNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogDeleteNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file -- GitLab From 13fd07f8de6f94b2862e9b3fc42bc5b1d81ff78e Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 13 Aug 2025 00:35:09 +0300 Subject: [PATCH 03/13] adding Notifications for CategoryCreate CategoryDelete --- .../model/CategoryCreateNotification.java | 97 +++++++++++++++++++ .../model/CategoryDeleteNotification.java | 97 +++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteNotification.java diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateNotification.java new file mode 100644 index 0000000..52a9b42 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for category create events + */ +@Schema(description = "The notification data structure for category create events") +@Validated +public class CategoryCreateNotification extends Notification { + + @JsonProperty("event") + private CategoryCreateEvent event = null; + + public CategoryCreateNotification event(CategoryCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public CategoryCreateEvent getEvent() { + return event; + } + + public void setEvent(CategoryCreateEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryCreateNotification categoryCreateNotification = (CategoryCreateNotification) o; + return Objects.equals(this.event, categoryCreateNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryCreateNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteNotification.java new file mode 100644 index 0000000..49bbde3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for category delete events + */ +@Schema(description = "The notification data structure for category delete events") +@Validated +public class CategoryDeleteNotification extends Notification { + + @JsonProperty("event") + private CategoryDeleteEvent event = null; + + public CategoryDeleteNotification event(CategoryDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public CategoryDeleteEvent getEvent() { + return event; + } + + public void setEvent(CategoryDeleteEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryDeleteNotification categoryDeleteNotification = (CategoryDeleteNotification) o; + return Objects.equals(this.event, categoryDeleteNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryDeleteNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file -- GitLab From dea71d6062de6259542aa25c1e40784622970a7a Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 13 Aug 2025 01:29:08 +0300 Subject: [PATCH 04/13] adding events for product spec --- ...roductSpecificationCreateNotification.java | 97 +++++++++++++++++++ ...roductSpecificationDeleteNotification.java | 97 +++++++++++++++++++ .../tmf/po622/model/ProductOrderMapper.java | 1 + 3 files changed, 195 insertions(+) create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteNotification.java diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateNotification.java new file mode 100644 index 0000000..6da1a02 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product specification create events + */ +@Schema(description = "The notification data structure for product specification create events") +@Validated +public class ProductSpecificationCreateNotification extends Notification { + + @JsonProperty("event") + private ProductSpecificationCreateEvent event = null; + + public ProductSpecificationCreateNotification event(ProductSpecificationCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductSpecificationCreateEvent getEvent() { + return event; + } + + public void setEvent(ProductSpecificationCreateEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCreateNotification productSpecificationCreateNotification = (ProductSpecificationCreateNotification) o; + return Objects.equals(this.event, productSpecificationCreateNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCreateNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteNotification.java new file mode 100644 index 0000000..ba9e0c4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product specification delete events + */ +@Schema(description = "The notification data structure for product specification delete events") +@Validated +public class ProductSpecificationDeleteNotification extends Notification { + + @JsonProperty("event") + private ProductSpecificationDeleteEvent event = null; + + public ProductSpecificationDeleteNotification event(ProductSpecificationDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductSpecificationDeleteEvent getEvent() { + return event; + } + + public void setEvent(ProductSpecificationDeleteEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationDeleteNotification productSpecificationDeleteNotification = (ProductSpecificationDeleteNotification) o; + return Objects.equals(this.event, productSpecificationDeleteNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationDeleteNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderMapper.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderMapper.java index f6c7a41..1a30200 100644 --- a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderMapper.java +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderMapper.java @@ -21,6 +21,7 @@ import org.mapstruct.NullValuePropertyMappingStrategy; nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) public interface ProductOrderMapper { + @Mapping(target = "orderDate", ignore = true) @Mapping(target = "uuid", ignore = true) @Mapping(target = "baseType", ignore = true) @Mapping(target = "href", ignore = true) -- GitLab From 399dfaaf8793674c8a64a543564577fd24adea29 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 13 Aug 2025 01:52:57 +0300 Subject: [PATCH 05/13] adding Notification classes for ProductOffering --- ...eringAttributeValueChangeNotification.java | 97 +++++++++++++++++++ .../ProductOfferingCreateNotification.java | 97 +++++++++++++++++++ .../ProductOfferingDeleteNotification.java | 97 +++++++++++++++++++ ...roductOfferingStateChangeNotification.java | 97 +++++++++++++++++++ 4 files changed, 388 insertions(+) create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeNotification.java diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeNotification.java new file mode 100644 index 0000000..2fc6585 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering attribute value change events + */ +@Schema(description = "The notification data structure for product offering attribute value change events") +@Validated +public class ProductOfferingAttributeValueChangeNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingAttributeValueChangeEvent event = null; + + public ProductOfferingAttributeValueChangeNotification event(ProductOfferingAttributeValueChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingAttributeValueChangeEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingAttributeValueChangeEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingAttributeValueChangeNotification productOfferingAttributeValueChangeNotification = (ProductOfferingAttributeValueChangeNotification) o; + return Objects.equals(this.event, productOfferingAttributeValueChangeNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingAttributeValueChangeNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateNotification.java new file mode 100644 index 0000000..e3b2572 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering create events + */ +@Schema(description = "The notification data structure for product offering create events") +@Validated +public class ProductOfferingCreateNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingCreateEvent event = null; + + public ProductOfferingCreateNotification event(ProductOfferingCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingCreateEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingCreateEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingCreateNotification productOfferingCreateNotification = (ProductOfferingCreateNotification) o; + return Objects.equals(this.event, productOfferingCreateNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingCreateNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteNotification.java new file mode 100644 index 0000000..2c94885 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering delete events + */ +@Schema(description = "The notification data structure for product offering delete events") +@Validated +public class ProductOfferingDeleteNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingDeleteEvent event = null; + + public ProductOfferingDeleteNotification event(ProductOfferingDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingDeleteEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingDeleteEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingDeleteNotification productOfferingDeleteNotification = (ProductOfferingDeleteNotification) o; + return Objects.equals(this.event, productOfferingDeleteNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingDeleteNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeNotification.java new file mode 100644 index 0000000..7044acb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering state change events + */ +@Schema(description = "The notification data structure for product offering state change events") +@Validated +public class ProductOfferingStateChangeNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingStateChangeEvent event = null; + + public ProductOfferingStateChangeNotification event(ProductOfferingStateChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingStateChangeEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingStateChangeEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingStateChangeNotification productOfferingStateChangeNotification = (ProductOfferingStateChangeNotification) o; + return Objects.equals(this.event, productOfferingStateChangeNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingStateChangeNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file -- GitLab From 2c296aa4aea58ef25f9eedd9b885bd421c611730 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 13 Aug 2025 02:17:06 +0300 Subject: [PATCH 06/13] adding ProductOfferingPrice related events --- ...PriceAttributeValueChangeNotification.java | 97 +++++++++++++++++++ ...roductOfferingPriceCreateNotification.java | 97 +++++++++++++++++++ ...roductOfferingPriceDeleteNotification.java | 97 +++++++++++++++++++ ...tOfferingPriceStateChangeNotification.java | 97 +++++++++++++++++++ 4 files changed, 388 insertions(+) create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeNotification.java diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeNotification.java new file mode 100644 index 0000000..541356d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering price attribute value change events + */ +@Schema(description = "The notification data structure for product offering price attribute value change events") +@Validated +public class ProductOfferingPriceAttributeValueChangeNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingPriceAttributeValueChangeEvent event = null; + + public ProductOfferingPriceAttributeValueChangeNotification event(ProductOfferingPriceAttributeValueChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingPriceAttributeValueChangeEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceAttributeValueChangeEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceAttributeValueChangeNotification productOfferingPriceAttributeValueChangeNotification = (ProductOfferingPriceAttributeValueChangeNotification) o; + return Objects.equals(this.event, productOfferingPriceAttributeValueChangeNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceAttributeValueChangeNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateNotification.java new file mode 100644 index 0000000..38d6525 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering price create events + */ +@Schema(description = "The notification data structure for product offering price create events") +@Validated +public class ProductOfferingPriceCreateNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingPriceCreateEvent event = null; + + public ProductOfferingPriceCreateNotification event(ProductOfferingPriceCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingPriceCreateEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceCreateEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceCreateNotification productOfferingPriceCreateNotification = (ProductOfferingPriceCreateNotification) o; + return Objects.equals(this.event, productOfferingPriceCreateNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceCreateNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteNotification.java new file mode 100644 index 0000000..5ca808a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering price delete events + */ +@Schema(description = "The notification data structure for product offering price delete events") +@Validated +public class ProductOfferingPriceDeleteNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingPriceDeleteEvent event = null; + + public ProductOfferingPriceDeleteNotification event(ProductOfferingPriceDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingPriceDeleteEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceDeleteEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceDeleteNotification productOfferingPriceDeleteNotification = (ProductOfferingPriceDeleteNotification) o; + return Objects.equals(this.event, productOfferingPriceDeleteNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceDeleteNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeNotification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeNotification.java new file mode 100644 index 0000000..1945cb6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeNotification.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================LICENSE_END================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure for product offering price state change events + */ +@Schema(description = "The notification data structure for product offering price state change events") +@Validated +public class ProductOfferingPriceStateChangeNotification extends Notification { + + @JsonProperty("event") + private ProductOfferingPriceStateChangeEvent event = null; + + public ProductOfferingPriceStateChangeNotification event(ProductOfferingPriceStateChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event data structure + * @return event + **/ + @Schema(description = "The event data structure") + @Valid + public ProductOfferingPriceStateChangeEvent getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceStateChangeEvent event) { + this.event = event; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceStateChangeNotification productOfferingPriceStateChangeNotification = (ProductOfferingPriceStateChangeNotification) o; + return Objects.equals(this.event, productOfferingPriceStateChangeNotification.event) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(event, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceStateChangeNotification {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} \ No newline at end of file -- GitLab From 48271c31bfb1a0e073729427e33fe676d1e277ce Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 13 Aug 2025 15:09:42 +0300 Subject: [PATCH 07/13] fix for #28 --- .../etsi/osl/tmf/scm633/model/EventSubscription.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java index 80807b8..216bb1d 100644 --- a/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java @@ -26,6 +26,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.springframework.validation.annotation.Validated; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import jakarta.validation.constraints.NotNull; /** @@ -35,7 +40,12 @@ import jakarta.validation.constraints.NotNull; @Validated @jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@Entity(name = "ServiceEventSubscription") +@Table(name = "ServiceEventSubscription") public class EventSubscription { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) @JsonProperty("id") private String id = null; -- GitLab From 15d35dd84bb95d8e51710338207cfb8ac1957c9c Mon Sep 17 00:00:00 2001 From: trantzas Date: Mon, 18 Aug 2025 17:32:38 +0000 Subject: [PATCH 08/13] Preparing the develop branch for 2025Q4 Release Cycle --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 411f2cd..7d4016e 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ org.etsi.osl org.etsi.osl.main - 2025Q2 + 2025Q4-SNAPSHOT ../org.etsi.osl.main -- GitLab From d06bb9db6927b4bfc874dbef8061a2818a009c84 Mon Sep 17 00:00:00 2001 From: Diogo Santos Date: Tue, 9 Sep 2025 13:20:00 +0100 Subject: [PATCH 09/13] Enum for Range Interval options --- .../osl/tmf/common/model/ERangeInterval.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/ERangeInterval.java diff --git a/src/main/java/org/etsi/osl/tmf/common/model/ERangeInterval.java b/src/main/java/org/etsi/osl/tmf/common/model/ERangeInterval.java new file mode 100644 index 0000000..f4c224c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/ERangeInterval.java @@ -0,0 +1,27 @@ +package org.etsi.osl.tmf.common.model; + +public enum ERangeInterval { + OPEN("open"), + CLOSED("closed"), + CLOSED_BOTTOM("closedBottom"), + CLOSED_TOP("closedTop"); + + private String value; + + ERangeInterval(String value) {this.value = value;} + + public String getValue() { + return value; + } + + @Override + public String toString() { + return this.getValue(); + } + + public static ERangeInterval getEnum(String value) { + for(ERangeInterval v : values()) + if(v.getValue().equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } +} -- GitLab From d232924dca448cd2eaf65dbee38156748f2695cd Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Tue, 2 Dec 2025 16:50:41 +0200 Subject: [PATCH 10/13] fix for #30 --- .../ProductSpecificationCharacteristic.java | 115 ++++++++++++++++++ ...ecificationCharacteristicRelationship.java | 9 ++ 2 files changed, 124 insertions(+) diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java index 9f5f3bd..363b8a8 100644 --- a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java @@ -19,12 +19,18 @@ */ package org.etsi.osl.tmf.pcm620.model; +import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; import com.fasterxml.jackson.annotation.JsonProperty; import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharRelationship; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue; import org.springframework.validation.annotation.Validated; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.CascadeType; @@ -379,4 +385,113 @@ public class ProductSpecificationCharacteristic extends BaseEntity { } return o.toString().replace("\n", "\n "); } + + public void updateWith(ProductSpecificationCharacteristic src) { + this.name = src.getName(); + this.description = src.getDescription(); + this.maxCardinality = src.getMaxCardinality(); + this.minCardinality = src.getMinCardinality(); + this.regex = src.getRegex(); + this.isUnique =src.isUnique; + this.configurable =src.isConfigurable(); + this.extensible =src.isExtensible(); + this.valueType =src.valueType; + + this.updateProductSpecCharacteristicValues(src.getProductSpecCharacteristicValue()); + this.updateProductSpecCharRelationships(src.getProductSpecCharRelationship()); + + } + + + private void updateProductSpecCharacteristicValues( + @Valid Set srcSet) { + if ( srcSet == null ) { + return; + } + + Map idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (ProductSpecificationCharacteristicValue r : srcSet) { + + boolean valueExists = false; + for (ProductSpecificationCharacteristicValue thisCharVal : this.productSpecCharacteristicValue) { + if ( thisCharVal.hashCode() == r.hashCode() ) { + valueExists = true; + idAddedUpdated.put(thisCharVal.hashCode(), true); + break; + } + } + + if (!valueExists) { + ProductSpecificationCharacteristicValue nr = new ProductSpecificationCharacteristicValue( r ); + this.addProductSpecCharacteristicValueItem( nr ); + idAddedUpdated.put( nr.hashCode(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (ProductSpecificationCharacteristicValue ss : this.productSpecCharacteristicValue) { + if ( idAddedUpdated.get( ss.hashCode() ) == null ) { + toRemove.add(ss); + } + } + + for (ProductSpecificationCharacteristicValue r : toRemove) { + this.productSpecCharacteristicValue.remove(r); + } + + + } + + + private void updateProductSpecCharRelationships( + @Valid Set productSpecCharRelationship2) { + + + Map< String, Boolean> idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (ProductSpecificationCharacteristicRelationship r : productSpecCharRelationship2) { + + boolean valueExists = false; + for (ProductSpecificationCharacteristicRelationship thisCharVal : this.productSpecCharRelationship) { + if ( (thisCharVal.getId()!=null) && (thisCharVal.getId().equals(r.getId() ) )) { + valueExists = true; + idAddedUpdated.put( thisCharVal.getId() , true); + break; + } + } + + if (!valueExists) { + this.productSpecCharRelationship.add( new ProductSpecificationCharacteristicRelationship( r )); + idAddedUpdated.put( r.getId(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (ProductSpecificationCharacteristicRelationship ss : this.productSpecCharRelationship) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (ProductSpecificationCharacteristicRelationship r : toRemove) { + this.productSpecCharRelationship.remove(r); + } + + } + } diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java index a340803..fa77f36 100644 --- a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java @@ -23,6 +23,7 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonProperty; import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; import org.springframework.validation.annotation.Validated; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Entity; @@ -50,6 +51,14 @@ public class ProductSpecificationCharacteristicRelationship extends BaseEntity private String relationshipType = null; + public ProductSpecificationCharacteristicRelationship( + ProductSpecificationCharacteristicRelationship src) { + name = src.name; + relationshipType = src.relationshipType; + validFor = new TimePeriod( src.validFor ); + id = src.id; + } + public ProductSpecificationCharacteristicRelationship id(String id) { this.id = id; return this; -- GitLab From ff7014934ccfb6ee8a5350a9363f7084c8a0e4a8 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 3 Dec 2025 20:01:39 +0200 Subject: [PATCH 11/13] fix for #30 --- .../model/ProductSpecificationCharacteristic.java | 2 +- ...uctSpecificationCharacteristicRelationship.java | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java index 363b8a8..0d8fdf6 100644 --- a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java @@ -471,7 +471,7 @@ public class ProductSpecificationCharacteristic extends BaseEntity { } if (!valueExists) { - this.productSpecCharRelationship.add( new ProductSpecificationCharacteristicRelationship( r )); + this.productSpecCharRelationship.add( r.getNewProductSpecificationCharacteristicRelationship( r )); idAddedUpdated.put( r.getId(), true); } diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java index fa77f36..eb76610 100644 --- a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java @@ -51,12 +51,16 @@ public class ProductSpecificationCharacteristicRelationship extends BaseEntity private String relationshipType = null; - public ProductSpecificationCharacteristicRelationship( + + public ProductSpecificationCharacteristicRelationship getNewProductSpecificationCharacteristicRelationship( ProductSpecificationCharacteristicRelationship src) { - name = src.name; - relationshipType = src.relationshipType; - validFor = new TimePeriod( src.validFor ); - id = src.id; + ProductSpecificationCharacteristicRelationship newp = new ProductSpecificationCharacteristicRelationship(); + newp.name = src.name; + newp.relationshipType = src.relationshipType; + newp.validFor = new TimePeriod( src.validFor ); + newp.id = src.id; + + return newp; } public ProductSpecificationCharacteristicRelationship id(String id) { -- GitLab From a904e674762ba98b9f1e9c787cebc2ed3313a06b Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Wed, 3 Dec 2025 20:02:41 +0200 Subject: [PATCH 12/13] fix for #31 --- .../java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java index 1e345b4..da92416 100644 --- a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java @@ -257,9 +257,7 @@ public class ResourceCategory extends BaseEntity { && Objects.equals(this.lifecycleStatus, resourceCategory.lifecycleStatus) && Objects.equals(this.lastUpdate, resourceCategory.lastUpdate) && Objects.equals(this.parentId, resourceCategory.parentId) - && Objects.equals(this.isRoot, resourceCategory.isRoot) - && Objects.equals(this.getCategoryRefs(), resourceCategory.getCategoryRefs()) - && Objects.equals(this.getResourceCandidateRefs(), resourceCategory.getResourceCandidateRefs()); + && Objects.equals(this.isRoot, resourceCategory.isRoot); } // @Override -- GitLab From 8040ce3fb2298212d2bddd3669977be8eb182fa7 Mon Sep 17 00:00:00 2001 From: Kostis Trantzas Date: Sat, 24 Jan 2026 21:05:52 +0000 Subject: [PATCH 13/13] Preparation for Release 2025Q4 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7d4016e..38a0b20 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ org.etsi.osl org.etsi.osl.main - 2025Q4-SNAPSHOT + 2025Q4 ../org.etsi.osl.main -- GitLab