summaryrefslogtreecommitdiffstats
path: root/prh-commons/src/main
diff options
context:
space:
mode:
authorJoanna Jeremicz <joanna.jeremicz@nokia.com>2019-03-14 12:36:09 +0100
committerJoanna Jeremicz <joanna.jeremicz@nokia.com>2019-03-15 08:18:07 +0100
commitd824f1434f7ea71f1efdf3e9a667f6724ae600d3 (patch)
tree0218dd115c0b14bf787eccff8f0edfd998aa3675 /prh-commons/src/main
parentda01e853388b3715a4da488a73a10522e90bf0ed (diff)
Add AAI json body builder
Change-Id: Ib169c2904c11a267fbea0c8d2ab32e562669b60a Issue-ID: DCAEGEN2-1312 Signed-off-by: Joanna Jeremicz <joanna.jeremicz@nokia.com>
Diffstat (limited to 'prh-commons/src/main')
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/AaiJsonBodyBuilderImpl.java55
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java4
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilderImpl.java (renamed from prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/JsonBodyBuilderImpl.java)42
3 files changed, 75 insertions, 26 deletions
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/AaiJsonBodyBuilderImpl.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/AaiJsonBodyBuilderImpl.java
new file mode 100644
index 00000000..8e95a75f
--- /dev/null
+++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/AaiJsonBodyBuilderImpl.java
@@ -0,0 +1,55 @@
+/*
+ * ============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.model;
+
+import com.google.gson.GsonBuilder;
+import com.google.gson.TypeAdapterFactory;
+import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder;
+
+import java.util.ServiceLoader;
+
+
+public class AaiJsonBodyBuilderImpl implements JsonBodyBuilder<ConsumerDmaapModel> {
+
+ /**
+ * Method for serialization object by GSON.
+ *
+ * @param consumerDmaapModel - object which will be serialized
+ * @return string from serialization
+ */
+ public String createJsonBody(ConsumerDmaapModel consumerDmaapModel) {
+ GsonBuilder gsonBuilder = new GsonBuilder();
+ ServiceLoader.load(TypeAdapterFactory.class).forEach(gsonBuilder::registerTypeAdapterFactory);
+
+ return gsonBuilder.create().toJson(ImmutableConsumerDmaapModel.builder()
+ .ipv4(consumerDmaapModel.getIpv4())
+ .ipv6(consumerDmaapModel.getIpv6())
+ .correlationId(consumerDmaapModel.getCorrelationId())
+ .serialNumber(consumerDmaapModel.getSerialNumber())
+ .equipVendor(consumerDmaapModel.getEquipVendor())
+ .equipModel(consumerDmaapModel.getEquipModel())
+ .equipType(consumerDmaapModel.getEquipType())
+ .nfRole(consumerDmaapModel.getNfRole())
+ .swVersion(consumerDmaapModel.getSwVersion())
+ .additionalFields(consumerDmaapModel.getAdditionalFields())
+ .build());
+ }
+} \ No newline at end of file
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java
index f6b817ef..585190c7 100644
--- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java
+++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/ConsumerDmaapModel.java
@@ -22,6 +22,7 @@ package org.onap.dcaegen2.services.prh.model;
import com.google.gson.JsonObject;
import com.google.gson.annotations.SerializedName;
+import org.springframework.lang.Nullable;
import org.immutables.gson.Gson;
import org.immutables.value.Value;
import org.onap.dcaegen2.services.sdk.rest.services.model.AaiModel;
@@ -38,9 +39,11 @@ public interface ConsumerDmaapModel extends AaiModel, DmaapModel {
@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();
@@ -62,6 +65,7 @@ public interface ConsumerDmaapModel extends AaiModel, DmaapModel {
@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/model/JsonBodyBuilderImpl.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilderImpl.java
index d031b1b5..fe812a41 100644
--- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/JsonBodyBuilderImpl.java
+++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilderImpl.java
@@ -22,16 +22,14 @@ package org.onap.dcaegen2.services.prh.model;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
import com.google.gson.TypeAdapterFactory;
+import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel.Builder;
import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder;
import java.util.ServiceLoader;
-public class JsonBodyBuilderImpl implements JsonBodyBuilder<ConsumerDmaapModel> {
-
- public static final String ADDITIONAL_FIELDS = "additionalFields";
+public class PnfReadyJsonBodyBuilderImpl implements JsonBodyBuilder<ConsumerDmaapModel> {
/**
* Method for serialization object by GSON.
@@ -42,27 +40,19 @@ public class JsonBodyBuilderImpl implements JsonBodyBuilder<ConsumerDmaapModel>
public String createJsonBody(ConsumerDmaapModel consumerDmaapModel) {
GsonBuilder gsonBuilder = new GsonBuilder();
ServiceLoader.load(TypeAdapterFactory.class).forEach(gsonBuilder::registerTypeAdapterFactory);
- return filterOutRedundantFields(gsonBuilder.create().toJson(ImmutableConsumerDmaapModel.builder()
- .ipv4(consumerDmaapModel.getIpv4())
- .ipv6(consumerDmaapModel.getIpv6())
- .correlationId(consumerDmaapModel.getCorrelationId())
- .serialNumber(consumerDmaapModel.getSerialNumber())
- .equipVendor(consumerDmaapModel.getEquipVendor())
- .equipModel(consumerDmaapModel.getEquipModel())
- .equipType(consumerDmaapModel.getEquipType())
- .nfRole(consumerDmaapModel.getNfRole())
- .swVersion(consumerDmaapModel.getSwVersion())
- .additionalFields(consumerDmaapModel.getAdditionalFields())
- .build()));
- }
-
- private String filterOutRedundantFields(String json) {
- JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
- if(jsonObject.get(ADDITIONAL_FIELDS).equals(new JsonObject())) {
- jsonObject.remove(ADDITIONAL_FIELDS);
- }
- jsonObject.remove("ipaddress-v4-oam");
- jsonObject.remove("ipaddress-v6-oam");
- return jsonObject.toString();
+ 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());
+
+ JsonObject additionalFields = consumerDmaapModel.getAdditionalFields();
+ if(additionalFields != null && !additionalFields.equals(new JsonObject())) {
+ builder.additionalFields(additionalFields);
+ }
+ return gsonBuilder.create().toJson(builder.build());
}
} \ No newline at end of file