diff options
author | Michal Kabaj <michal.kabaj@nokia.com> | 2019-12-05 14:44:37 +0100 |
---|---|---|
committer | Michal Kabaj <michal.kabaj@nokia.com> | 2019-12-06 11:51:35 +0100 |
commit | 487cbcc2327cb2f578f969d1f133903ae128df89 (patch) | |
tree | 74339635670b753e37c70f517de45f4fadc833a8 /prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter | |
parent | fc36a6eeebbc05d640d20bfe761037e23d20f1e0 (diff) |
Refactor AaiClient API - package restructure
- Reorganized aaiclient related classes between api/impl/main packages
Issue-ID: DCAEGEN2-1955
Signed-off-by: Michal Kabaj <michal.kabaj@nokia.com>
Change-Id: Ie68f74cd94a6de0806c192046c1746af25979170
Diffstat (limited to 'prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter')
8 files changed, 611 insertions, 6 deletions
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiPnfResultModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiPnfResultModel.java new file mode 100644 index 00000000..cae63853 --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiPnfResultModel.java @@ -0,0 +1,208 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved. + * ================================================================================ + * 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.onap.dcaegen2.services.prh.adapter.aai.api; + +import com.google.gson.annotations.SerializedName; +import org.immutables.gson.Gson; +import org.immutables.value.Value; +import org.onap.dcaegen2.services.prh.model.ImmutableRelationship; +import org.onap.dcaegen2.services.prh.model.Relationship; +import org.springframework.lang.Nullable; + + +/** + * PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE. ###### Related Nodes - TO complex( pnf LocatedIn complex, MANY2ONE) - TO instance-group( pnf MemberOf instance-group, MANY2MANY) - TO zone( pnf LocatedIn zone, MANY2ONE) - FROM configuration( configuration AppliesTo pnf, ONE2MANY) - FROM esr-thirdparty-sdnc( esr-thirdparty-sdnc AppliesTo pnf, ONE2MANY) - FROM generic-vnf( generic-vnf HostedOn pnf, MANY2MANY) - FROM lag-interface (CHILD of pnf, lag-interface BindsTo pnf, MANY2ONE)(1) - FROM logical-link( logical-link BridgedTo pnf, MANY2MANY) - FROM p-interface (CHILD of pnf, p-interface BindsTo pnf, MANY2ONE)(1) - FROM service-instance( service-instance ComposedOf pnf, ONE2MANY) -(1) IF this PNF node is deleted, this FROM node is DELETED also + */ +@Value.Immutable +@Gson.TypeAdapters(fieldNamingStrategy = true) +public interface AaiPnfResultModel { + + /** + * unique name of Physical Network Function. + **/ + @Nullable + @SerializedName("pnf-name") + String getPnfName(); + + /** + * name of Physical Network Function. + **/ + @Nullable + @SerializedName("pnf-name2") + String getPnfName2(); + + /** + * URL to endpoint where AAI can get more details. + **/ + @Nullable + @SerializedName("selflink") + String getSelflink(); + + /** + * source of name2 + **/ + @Nullable + @SerializedName("pnf-name2-source") + String getPnfName2Source(); + + /** + * id of pnf + **/ + @Nullable + @SerializedName("pnf-id") + String getPnfId(); + + /** + * Equipment type. Source of truth should define valid values. + **/ + @Nullable + @SerializedName("equip-type") + String getEquipType(); + + /** + * Equipment vendor. Source of truth should define valid values. + **/ + @Nullable + @SerializedName("equip-vendor") + String getEquipVendor(); + + /** + * Equipment model. Source of truth should define valid values. + **/ + @Nullable + @SerializedName("equip-model") + String getEquipModel(); + + /** + * identifier of managed by ATT or customer + **/ + @Nullable + @SerializedName("management-option") + String getManagementOption(); + + /** + * ipv4-oam-address with new naming convention for IP addresses + **/ + @Nullable + @SerializedName("ipaddress-v4-oam") + String getIpaddressV4Oam(); + + /** + * sw-version is the version of SW for the hosted application on the PNF. + **/ + @Nullable + @SerializedName("sw-version") + String getSwVersion(); + + /** + * Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs. + **/ + @Nullable + @SerializedName("in-maint") + Boolean isInMaint(); + + /** + * ID of the physical frame (relay rack) where pnf is installed. + **/ + @Nullable + @SerializedName("frame-id") + String getFrameId(); + + /** + * Serial number of the device + **/ + @Nullable + @SerializedName("serial-number") + String getSerialNumber(); + + /** + * IPV4 Loopback 0 address + **/ + @Nullable + @SerializedName("ipaddress-v4-loopback-0") + String getIpaddressV4Loopback0(); + + /** + * IPV6 Loopback 0 address + **/ + @Nullable + @SerializedName("ipaddress-v6-loopback-0") + String getIpaddressV6Loopback0(); + + /** + * IPV4 AIM address + **/ + @Nullable + @SerializedName("ipaddress-v4-aim") + String getIpaddressV4Aim(); + + /** + * IPV6 AIM address + **/ + @Nullable + @SerializedName("ipaddress-v6-aim") + String getIpaddressV6Aim(); + + /** + * IPV6 OAM address + **/ + @Nullable + @SerializedName("ipaddress-v6-oam") + String getIpaddressV6Oam(); + + /** + * CANOPI's inventory status. Only set with values exactly as defined by CANOPI. + **/ + @Nullable + @SerializedName("inv-status") + String getInvStatus(); + + /** + * Used for optimistic concurrency. Must be empty on createGson, valid on update and delete. + **/ + @Nullable + @SerializedName("resource-version") + String getResourceVersion(); + + /** + * Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV] + **/ + @Nullable + @SerializedName("prov-status") + String getProvStatus(); + + /** + * Nf Role is the role performed by this instance in the network. + **/ + @Nullable + @SerializedName("nf-role") + String getNfRole(); + + /** + * Get relationshipList + **/ + @SerializedName("relationship-list") + @Value.Default + default Relationship getRelationshipList() { + return ImmutableRelationship.builder().build(); + } +} + diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiServiceInstanceResultModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiServiceInstanceResultModel.java new file mode 100644 index 00000000..f74c1a5a --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiServiceInstanceResultModel.java @@ -0,0 +1,211 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved. + * ================================================================================ + * 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.onap.dcaegen2.services.prh.adapter.aai.api; + +import com.google.gson.annotations.SerializedName; +import org.immutables.gson.Gson; +import org.immutables.value.Value; +import org.onap.dcaegen2.services.prh.model.ImmutableRelationship; +import org.onap.dcaegen2.services.prh.model.Relationship; +import org.springframework.lang.Nullable; + +@Value.Immutable +@Gson.TypeAdapters(fieldNamingStrategy = true) +public interface AaiServiceInstanceResultModel { + + /** + * Uniquely identifies this instance of a service + **/ + @Nullable + @SerializedName("service-instance-id") + String getServiceInstanceId(); + + /** + * This field will store a name assigned to the service-instance. + **/ + @Nullable + @SerializedName("service-instance-name") + String getServiceInstanceName(); + + /** + * String capturing type of service. + **/ + @Nullable + @SerializedName("service-type") + String getServiceType(); + + /** + * String capturing the service role. + **/ + @Nullable + @SerializedName("service-role") + String getServiceRole(); + + /** + * This field will store the environment context assigned to the service-instance. + **/ + @Nullable + @SerializedName("environment-context") + String getEnvironmentContext(); + + /** + * This field will store the workload context assigned to the service-instance. + **/ + @Nullable + @SerializedName("workload-context") + String getWorkloadContext(); + + /** + * createGson time of Network Service. + **/ + @Nullable + @SerializedName("created-at") + String getCreatedAt(); + + /** + * last update of Network Service. + **/ + @Nullable + @SerializedName("updated-at") + String getUpdatedAt(); + + /** + * short description for service-instance. + **/ + @Nullable + @SerializedName("description") + String getDescription(); + + /** + * the ASDC model id for this resource or service model. + **/ + @Nullable + @SerializedName("model-invariant-id") + String getModelInvariantId(); + + /** + * the ASDC model version for this resource or service model. + **/ + @Nullable + @SerializedName("model-version-id") + String getModelVersionId(); + + /** + * the ASDC model version for this resource or service model. + **/ + @Nullable + @SerializedName("persona-model-version") + String getPersonaModelVersion(); + + /** + * the ASDC data dictionary widget model. This maps directly to the A&AI widget. + **/ + @Nullable + @SerializedName("widget-model-id") + String getWidgetModelId(); + + /** + * the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget. + **/ + @Nullable + @SerializedName("widget-model-version") + String getWidgetModelVersion(); + + /** + * Indicates the total bandwidth to be used for this service. + **/ + @Nullable + @SerializedName("bandwidth-total") + String getBandwidthTotal(); + + /** + * indicates the upstream bandwidth this service will use on the WAN1 port of the physical device. + **/ + @Nullable + @SerializedName("bandwidth-up-wan1") + String getBandwidthUpWan1(); + + /** + * indicates the downstream bandwidth this service will use on the WAN1 port of the physical device. + **/ + @Nullable + @SerializedName("bandwidth-down-wan1") + String getBandwidthDownWan1(); + + /** + * indicates the upstream bandwidth this service will use on the WAN2 port of the physical device. + **/ + @Nullable + @SerializedName("bandwidth-up-wan2") + String getBandwidthUpWan2(); + + /** + * indicates the downstream bandwidth this service will use on the WAN2 port of the physical device. + **/ + @Nullable + @SerializedName("bandwidth-down-wan2") + String getBandwidthDownWan2(); + + /** + * URL customers will use to access the vHN Portal. + **/ + @Nullable + @SerializedName("vhn-portal-url") + String getVhnPortalUrl(); + + /** + * An identifier that customers assign to the location where this service is being used. + **/ + @Nullable + @SerializedName("service-instance-location-id") + String getServiceInstanceLocationId(); + + /** + * Used for optimistic concurrency. Must be empty on createGson, valid on update and delete. + **/ + @Nullable + @SerializedName("resource-version") + String getResourceVersion(); + + /** + * Path to the controller object. + **/ + @Nullable + @SerializedName("selflink") + String getSelflink(); + + /** + * Orchestration status of this service. + **/ + @Nullable + @SerializedName("orchestration-status") + String getOrchestrationStatus(); + + /** + * Get relationshipList + **/ + @SerializedName("relationship-list") + @Value.Default + default Relationship getRelationshipList() { + return ImmutableRelationship.builder().build(); + } + +}
\ No newline at end of file diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/ConsumerDmaapModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/ConsumerDmaapModel.java new file mode 100644 index 00000000..4d417a5e --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/ConsumerDmaapModel.java @@ -0,0 +1,75 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved. + * ================================================================================ + * 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.onap.dcaegen2.services.prh.adapter.aai.api; + +import com.google.gson.JsonObject; +import com.google.gson.annotations.SerializedName; +import org.immutables.gson.Gson; +import org.immutables.value.Value; +import org.springframework.lang.Nullable; + +/** + * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 5/8/18 + */ + +@Value.Immutable +@Gson.TypeAdapters(fieldNamingStrategy = true) +public interface ConsumerDmaapModel { + + @SerializedName(value = "correlationId", alternate = "correlationId") + String getCorrelationId(); + + @Nullable + @SerializedName(value = "ipaddress-v4-oam", alternate = "ipaddress-v4-oam") + String getIpv4(); + + @Nullable + @SerializedName(value = "ipaddress-v6-oam", alternate = "ipaddress-v6-oam") + String getIpv6(); + + @Nullable + @SerializedName(value = "serial-number", alternate = "serial-number") + String getSerialNumber(); + + @Nullable + @SerializedName(value = "equip-vendor", alternate = "equip-vendor") + String getEquipVendor(); + + @Nullable + @SerializedName(value = "equip-model", alternate = "equip-model") + String getEquipModel(); + + @Nullable + @SerializedName(value = "equip-type", alternate = "equip-type") + String getEquipType(); + + @Nullable + @SerializedName(value = "nf-role", alternate = "nf-role") + String getNfRole(); + + @Nullable + @SerializedName(value = "sw-version", alternate = "sw-version") + String getSwVersion(); + + @Nullable + @SerializedName(value = "additionalFields", alternate = "additionalFields") + JsonObject getAdditionalFields(); +} diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClient.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiGetServiceInstanceClient.java index c41bb906..26fb8491 100644 --- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClient.java +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiGetServiceInstanceClient.java @@ -18,13 +18,15 @@ * ============LICENSE_END========================================================= */ -package org.onap.dcaegen2.services.prh.adapter.aai.api; +package org.onap.dcaegen2.services.prh.adapter.aai.impl; import static org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory.createRequestDiagnosticContext; import io.vavr.collection.HashMap; import io.vavr.collection.Map; import org.apache.commons.text.StringSubstitutor; +import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient; +import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiServiceInstanceQueryModel; import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse; diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClient.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiHttpGetClient.java index d50344ee..2ae28089 100644 --- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClient.java +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiHttpGetClient.java @@ -18,13 +18,14 @@ * ============LICENSE_END========================================================= */ -package org.onap.dcaegen2.services.prh.adapter.aai.api; +package org.onap.dcaegen2.services.prh.adapter.aai.impl; import static org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory.createRequestDiagnosticContext; import io.vavr.collection.HashMap; +import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ConsumerDmaapModel; import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest; diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClient.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiHttpPatchClient.java index ab1066aa..38ee680a 100644 --- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClient.java +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiHttpPatchClient.java @@ -18,15 +18,15 @@ * ============LICENSE_END========================================================= */ -package org.onap.dcaegen2.services.prh.adapter.aai.api; +package org.onap.dcaegen2.services.prh.adapter.aai.impl; import static org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory.createRequestDiagnosticContext; import io.vavr.collection.HashMap; import io.vavr.collection.Map; +import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ConsumerDmaapModel; import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.model.AaiJsonBodyBuilderImpl; -import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest; diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiJsonBodyBuilderImpl.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiJsonBodyBuilderImpl.java new file mode 100644 index 00000000..21277e85 --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/AaiJsonBodyBuilderImpl.java @@ -0,0 +1,59 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved. + * ================================================================================ + * 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.onap.dcaegen2.services.prh.adapter.aai.impl; + +import com.google.gson.GsonBuilder; +import com.google.gson.TypeAdapterFactory; +import java.util.ServiceLoader; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ConsumerDmaapModel; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ImmutableConsumerDmaapModel; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ImmutableConsumerDmaapModel.Builder; +import org.springframework.util.StringUtils; + + +public class AaiJsonBodyBuilderImpl { + + public String createJsonBody(ConsumerDmaapModel consumerDmaapModel) { + GsonBuilder gsonBuilder = new GsonBuilder(); + ServiceLoader.load(TypeAdapterFactory.class).forEach(gsonBuilder::registerTypeAdapterFactory); + + Builder builder = ImmutableConsumerDmaapModel.builder() + .correlationId(consumerDmaapModel.getCorrelationId()) + .serialNumber(consumerDmaapModel.getSerialNumber()) + .equipVendor(consumerDmaapModel.getEquipVendor()) + .equipModel(consumerDmaapModel.getEquipModel()) + .equipType(consumerDmaapModel.getEquipType()) + .nfRole(consumerDmaapModel.getNfRole()) + .swVersion(consumerDmaapModel.getSwVersion()) + .additionalFields(consumerDmaapModel.getAdditionalFields()); + + String ipv4 = consumerDmaapModel.getIpv4(); + if (!StringUtils.isEmpty(ipv4)) { + builder.ipv4(ipv4); + } + String ipv6 = consumerDmaapModel.getIpv6(); + if (!StringUtils.isEmpty(ipv6)) { + builder.ipv6(ipv6); + } + + return gsonBuilder.create().toJson(builder.build()); + } +}
\ No newline at end of file diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/PnfReadyJsonBodyBuilder.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/PnfReadyJsonBodyBuilder.java new file mode 100644 index 00000000..3088226e --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/impl/PnfReadyJsonBodyBuilder.java @@ -0,0 +1,49 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved. + * ================================================================================ + * 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.onap.dcaegen2.services.prh.adapter.aai.impl; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ConsumerDmaapModel; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ImmutableConsumerDmaapModel; +import org.onap.dcaegen2.services.prh.adapter.aai.api.ImmutableConsumerDmaapModel.Builder; +import org.onap.dcaegen2.services.prh.model.utils.PrhModelAwareGsonBuilder; + + +public class PnfReadyJsonBodyBuilder { + + /** + * Method for serialization object by GSON. + * + * @param consumerDmaapModel - object which will be serialized + * @return string from serialization + */ + public JsonElement createJsonBody(ConsumerDmaapModel consumerDmaapModel) { + Builder builder = ImmutableConsumerDmaapModel.builder() + .correlationId(consumerDmaapModel.getCorrelationId()); + + JsonObject additionalFields = consumerDmaapModel.getAdditionalFields(); + if(additionalFields != null && !additionalFields.equals(new JsonObject())) { + builder.additionalFields(additionalFields); + } + return PrhModelAwareGsonBuilder.createGson().toJsonTree(builder.build()); + } +}
\ No newline at end of file |