X-Git-Url: https://gerrit.onap.org/r/gitweb?p=holmes%2Fengine-management.git;a=blobdiff_plain;f=engine-d%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fdsa%2Fdmaappolling%2FDMaaPResponseUtil.java;h=e7d666977e5bdc58c382630ac2bef1ba9d994207;hp=be301538da5ae921279aecfcc6291cc42bd0f9bb;hb=c4dc95bc729afd91c00cab49d0a69bceb102eed9;hpb=eadc4de80148f3457e75b06270370a33dc4751a4 diff --git a/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java b/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java index be30153..e7d6669 100644 --- a/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java +++ b/engine-d/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 ZTE Corporation. + * Copyright 2017-2020 ZTE Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,98 +15,73 @@ */ package org.onap.holmes.dsa.dmaappolling; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import org.jvnet.hk2.annotations.Service; import org.onap.holmes.common.api.stat.AlarmAdditionalField; import org.onap.holmes.common.api.stat.VesAlarm; -import java.io.IOException; -import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import static org.onap.holmes.common.utils.GsonUtil.*; + @Service public class DMaaPResponseUtil { - public VesAlarm convertJsonToVesAlarm(String responseJson) throws IOException { - JSONObject jsonNode = JSON.parseObject(responseJson); + public VesAlarm convertJsonToVesAlarm(String responseJson) { + JsonObject jsonNode = JsonParser.parseString(responseJson).getAsJsonObject(); VesAlarm vesAlarm = new VesAlarm(); - JSONObject eventJson = JSON.parseObject(jsonNode.get("event") +""); - JSONObject commonEventHeaderJson = JSON.parseObject(eventJson.get("commonEventHeader") +""); + JsonObject eventJson = JsonParser.parseString(jsonNode.get("event").toString()).getAsJsonObject(); + JsonObject commonEventHeaderJson = JsonParser.parseString(eventJson.get("commonEventHeader").toString()) + .getAsJsonObject(); convertCommonEventHeaderJsonToEvent(commonEventHeaderJson, vesAlarm); - JSONObject faultFieldsJson = JSON.parseObject(eventJson.get("faultFields") +""); + JsonObject faultFieldsJson = JsonParser.parseString(eventJson.get("faultFields").toString()) + .getAsJsonObject(); convertFaultFieldsJsonToEvent(faultFieldsJson, vesAlarm); return vesAlarm; } - private void convertCommonEventHeaderJsonToEvent(JSONObject commonEventHeaderJson, + private void convertCommonEventHeaderJsonToEvent(JsonObject commonEventHeaderJson, VesAlarm vesAlarm) { - vesAlarm.setDomain((String) commonEventHeaderJson.get("domain")); - vesAlarm.setEventId((String) commonEventHeaderJson.get("eventId")); - vesAlarm.setEventName((String) commonEventHeaderJson.get("eventName")); + vesAlarm.setDomain(getAsString(commonEventHeaderJson, "domain")); + vesAlarm.setEventId(getAsString(commonEventHeaderJson, "eventId")); + vesAlarm.setEventName(getAsString(commonEventHeaderJson, "eventName")); vesAlarm.setAlarmIsCleared(vesAlarm.getEventName().endsWith("Cleared") ? 1 : 0); - vesAlarm.setEventType(getTextElementByNode(commonEventHeaderJson, "eventType")); - vesAlarm.setInternalHeaderFields( - getTextElementByNode(commonEventHeaderJson, "internalHeaderFields")); - vesAlarm.setLastEpochMicrosec(commonEventHeaderJson.getLong("lastEpochMicrosec")); - vesAlarm.setNfcNamingCode(getTextElementByNode(commonEventHeaderJson, "nfcNamingCode")); - vesAlarm.setNfNamingCode(getTextElementByNode(commonEventHeaderJson, "nfNamingCode")); - vesAlarm.setPriority((String) commonEventHeaderJson.get("priority")); - vesAlarm.setReportingEntityId( - getTextElementByNode(commonEventHeaderJson, "reportingEntityId")); - vesAlarm.setReportingEntityName( (String) commonEventHeaderJson.get("reportingEntityName")); - vesAlarm.setSequence((Integer) commonEventHeaderJson.get("sequence")); - vesAlarm.setSourceId(getTextElementByNode(commonEventHeaderJson, "sourceId")); - vesAlarm.setSourceName( (String) commonEventHeaderJson.get("sourceName")); - vesAlarm.setStartEpochMicrosec(commonEventHeaderJson.getLong("startEpochMicrosec")); - vesAlarm.setVersion(commonEventHeaderJson.getLong("version")); + vesAlarm.setEventType(getAsString(commonEventHeaderJson, "eventType")); + vesAlarm.setInternalHeaderFields(getAsString(commonEventHeaderJson, "internalHeaderFields")); + vesAlarm.setLastEpochMicrosec(getAsLong(commonEventHeaderJson, "lastEpochMicrosec")); + vesAlarm.setNfcNamingCode(getAsString(commonEventHeaderJson, "nfcNamingCode")); + vesAlarm.setNfNamingCode(getAsString(commonEventHeaderJson, "nfNamingCode")); + vesAlarm.setPriority(getAsString(commonEventHeaderJson, "priority")); + vesAlarm.setReportingEntityId(getAsString(commonEventHeaderJson, "reportingEntityId")); + vesAlarm.setReportingEntityName(getAsString(commonEventHeaderJson, "reportingEntityName")); + vesAlarm.setSequence(getAsInt(commonEventHeaderJson, "sequence")); + vesAlarm.setSourceId(getAsString(commonEventHeaderJson, "sourceId")); + vesAlarm.setSourceName(getAsString(commonEventHeaderJson, "sourceName")); + vesAlarm.setStartEpochMicrosec(getAsLong(commonEventHeaderJson, "startEpochMicrosec")); + vesAlarm.setVersion(getAsLong(commonEventHeaderJson, "version")); } - private void convertFaultFieldsJsonToEvent(JSONObject faultFieldsJson, VesAlarm vesAlarm) { + private void convertFaultFieldsJsonToEvent(JsonObject faultFieldsJson, VesAlarm vesAlarm) { vesAlarm.setAlarmAdditionalInformation(getListElementByNode(faultFieldsJson, "alarmAdditionalInformation")); - vesAlarm.setAlarmCondition(faultFieldsJson.getString("alarmCondition")); - vesAlarm.setAlarmInterfaceA(getTextElementByNode(faultFieldsJson, "alarmInterfaceA")); - vesAlarm.setEventCategory(getTextElementByNode(faultFieldsJson,"eventCategory")); - vesAlarm.setEventSeverity(faultFieldsJson.getString("eventSeverity")); - vesAlarm.setEventSourceType(faultFieldsJson.getString("eventSourceType")); - vesAlarm.setFaultFieldsVersion(faultFieldsJson.getLong("faultFieldsVersion")); - vesAlarm.setSpecificProblem(faultFieldsJson.getString("specificProblem")); - vesAlarm.setVfStatus(faultFieldsJson.getString("vfStatus")); - } - - private String getTextElementByNode(JSONObject jsonNode,String name){ - if(jsonNode.get(name) != null){ - return jsonNode.getString(name); - } - return null; - } - - private Long getLongElementByNode(JSONObject jsonNode, String name) { - if(jsonNode.get(name) != null){ - return jsonNode.getLong(name); - } - return null; + vesAlarm.setAlarmCondition(getAsString(faultFieldsJson, "alarmCondition")); + vesAlarm.setAlarmInterfaceA(getAsString(faultFieldsJson, "alarmInterfaceA")); + vesAlarm.setEventCategory(getAsString(faultFieldsJson, "eventCategory")); + vesAlarm.setEventSeverity(getAsString(faultFieldsJson, "eventSeverity")); + vesAlarm.setEventSourceType(getAsString(faultFieldsJson, "eventSourceType")); + vesAlarm.setFaultFieldsVersion(getAsLong(faultFieldsJson, "faultFieldsVersion")); + vesAlarm.setSpecificProblem(getAsString(faultFieldsJson, "specificProblem")); + vesAlarm.setVfStatus(getAsString(faultFieldsJson, "vfStatus")); } - private List getListElementByNode(JSONObject jsonNode, String name){ - List alarms = new ArrayList(); - if (jsonNode.get(name) != null) { - JSONArray alarmAdditionalInformations = jsonNode.getJSONArray(name); - for (int i = 0; i < alarmAdditionalInformations.size(); i++) { - JSONObject jsonObject = alarmAdditionalInformations.getJSONObject(i); - if (jsonObject.get("name") != null - && jsonObject.get("value") != null) { - AlarmAdditionalField field = new AlarmAdditionalField(); - field.setName(getTextElementByNode(jsonObject, "name")); - field.setValue(getTextElementByNode(jsonObject, "value")); - alarms.add(field); - } - } + private List getListElementByNode(JsonObject jsonNode, String name) { + if (jsonNode.has(name) && !jsonNode.get(name).isJsonNull()) { + return jsonToList(jsonNode.get(name).toString(), AlarmAdditionalField.class); } - return alarms; + return Collections.emptyList(); } }