From ce0b806a18d8f370e1245c480836d18a04afa243 Mon Sep 17 00:00:00 2001 From: GuangrongFu Date: Sat, 18 Jul 2020 17:47:37 +0800 Subject: Added Some Tools to GsonUtil Change-Id: I66cd546e6cb9af5313e235cde93a7e914ff00b1f Issue-ID: HOLMES-331 Signed-off-by: GuangrongFu --- .../common/dcae/utils/DcaeConfigurationParser.java | 34 +++------ .../org/onap/holmes/common/utils/GsonUtil.java | 80 ++++++++++++++++------ 2 files changed, 68 insertions(+), 46 deletions(-) (limited to 'holmes-actions/src/main') diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParser.java b/holmes-actions/src/main/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParser.java index c1eede7..377debb 100644 --- a/holmes-actions/src/main/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParser.java +++ b/holmes-actions/src/main/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParser.java @@ -30,6 +30,8 @@ import java.util.Map.Entry; import java.util.Set; import java.util.stream.Stream; +import static org.onap.holmes.common.utils.GsonUtil.getAsString; + public class DcaeConfigurationParser { private static final String RULE_CONTENT_SPLIT = "\\$\\$\\$"; @@ -85,15 +87,9 @@ public class DcaeConfigurationParser { private static SecurityInfo createSecurityInfo(String key, JsonObject entity) { SecurityInfo securityInfo = new SecurityInfo(); - if (entity.has("type") && !entity.get("type").isJsonNull()) { - securityInfo.setType(entity.get("type").getAsString()); - } - if (entity.has("aaf_password") && !entity.get("aaf_password").isJsonNull()) { - securityInfo.setAafPassword(entity.get("aaf_password").getAsString()); - } - if (entity.has("aaf_username") && !entity.get("aaf_username").isJsonNull()) { - securityInfo.setAafUsername(entity.get("aaf_username").getAsString()); - } + securityInfo.setType(getAsString(entity, "type")); + securityInfo.setAafPassword(getAsString(entity, "aaf_password")); + securityInfo.setAafUsername(getAsString(entity, "aaf_username")); securityInfo.setSecureTopic(!key.endsWith("unsecure")); fillInDmaapInfo(securityInfo, entity.get("dmaap_info").getAsJsonObject()); return securityInfo; @@ -101,21 +97,11 @@ public class DcaeConfigurationParser { private static void fillInDmaapInfo(SecurityInfo securityInfo, JsonObject jsonDmaapInfo) { SecurityInfo.DmaapInfo dmaapInfo = securityInfo.getDmaapInfo(); - if (jsonDmaapInfo.has("location") && !jsonDmaapInfo.get("location").isJsonNull()){ - dmaapInfo.setLocation(jsonDmaapInfo.get("location").getAsString()); - } - if (jsonDmaapInfo.has("topic_url") && !jsonDmaapInfo.get("topic_url").isJsonNull()) { - dmaapInfo.setTopicUrl(jsonDmaapInfo.get("topic_url").getAsString()); - } - if (jsonDmaapInfo.has("client_id") && !jsonDmaapInfo.get("client_id").isJsonNull()) { - dmaapInfo.setClientId(jsonDmaapInfo.get("client_id").getAsString()); - } - if (jsonDmaapInfo.has("client_role") && !jsonDmaapInfo.get("client_role").isJsonNull()) { - dmaapInfo.setClientRole(jsonDmaapInfo.get("client_role").getAsString()); - } - if (jsonDmaapInfo.has("type") && !jsonDmaapInfo.get("type").isJsonNull()) { - dmaapInfo.setType(jsonDmaapInfo.get("type").getAsString()); - } + dmaapInfo.setLocation(getAsString(jsonDmaapInfo, "location")); + dmaapInfo.setTopicUrl(getAsString(jsonDmaapInfo, "topic_url")); + dmaapInfo.setClientId(getAsString(jsonDmaapInfo, "client_id")); + dmaapInfo.setClientRole(getAsString(jsonDmaapInfo, "client_role")); + dmaapInfo.setType(getAsString(jsonDmaapInfo, "type")); } private static void fillInRules(DcaeConfigurations ret, JsonObject jsonObject) { diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java b/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java index 452aaf8..a5e6461 100644 --- a/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java +++ b/holmes-actions/src/main/java/org/onap/holmes/common/utils/GsonUtil.java @@ -1,5 +1,5 @@ /** - * Copyright 2018 ZTE Corporation. + * Copyright 2018-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. @@ -17,28 +17,25 @@ package org.onap.holmes.common.utils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; +import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; -import java.lang.reflect.Type; +import org.apache.commons.lang3.StringUtils; + import java.util.List; import java.util.Map; public class GsonUtil { private static Gson gson = null; + static { if (gson == null) { gson = new GsonBuilder() - .registerTypeAdapter(Integer.class, new JsonDeserializer() { - @Override - public Integer deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { - try { - return json.getAsInt(); - } catch (NumberFormatException e) { - return 0; - } + .registerTypeAdapter(Integer.class, (JsonDeserializer) (json, typeOfT, context) -> { + try { + return json.getAsInt(); + } catch (NumberFormatException e) { + return 0; } }) .create(); @@ -65,31 +62,70 @@ public class GsonUtil { return t; } - public static List GsonToList(String gsonString, Class cls) { + public static List jsonToList(String gsonString, Class cls) { List list = null; if (gson != null) { - list = gson.fromJson(gsonString, new TypeToken>() { - }.getType()); + list = gson.fromJson(gsonString, TypeToken.getParameterized(List.class, cls).getType()); } return list; } - public static List> GsonToListMaps(String gsonString) { + public static List> jsonToListMaps(String gsonString, Class cls) { List> list = null; if (gson != null) { list = gson.fromJson(gsonString, - new TypeToken>>() { - }.getType()); + TypeToken.getParameterized(List.class, + TypeToken.getParameterized(Map.class, String.class, cls).getType() + ).getType() + ); } return list; } - public static Map GsonToMaps(String gsonString) { + public static Map jsonToMap(String gsonString, Class cls) { Map map = null; if (gson != null) { - map = gson.fromJson(gsonString, new TypeToken>() { - }.getType()); + map = gson.fromJson(gsonString, TypeToken.getParameterized(Map.class, String.class, cls).getType()); } return map; } + + public static String getAsString(JsonObject o, String field) { + String ret = null; + + if (field == null) { + field = StringUtils.EMPTY; + } + + if (o.has(field) && !o.get(field).isJsonNull()) { + ret = o.get(field).getAsString(); + } + return ret; + } + + public static long getAsLong(JsonObject o, String field) { + long ret = 0; + + if (field == null) { + field = StringUtils.EMPTY; + } + + if (o.has(field) && !o.get(field).isJsonNull()) { + ret = o.get(field).getAsLong(); + } + return ret; + } + + public static int getAsInt(JsonObject o, String field) { + int ret = 0; + + if (field == null) { + field = StringUtils.EMPTY; + } + + if (o.has(field) && !o.get(field).isJsonNull()) { + ret = o.get(field).getAsInt(); + } + return ret; + } } -- cgit 1.2.3-korg