From 4ec725ef0905cd5490ed71b6576fdc1ef8fef17e Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 6 Feb 2019 13:14:57 -0500 Subject: Add superclasses for gson-jackson migration Added common classes needed by other gson-jackson code. Modified some logic to make it more maintainable or perform better. Updated comments and spacing. Fix another comment. Moved gson classes from utils to a separate gson project. Added GsonXxx annotations to mirror jackson annotations. Removed unneeded dependencies from gson pom. Removed old GsonMessage class from policy-endpoints. Removed trailing spaces. Updated licenses. Removed more trailing spaces. Removed unneeded checkstyle suppression file from utils. Change-Id: I1a285500faeb0a0b6a1467d09b92ecd3cded713e Issue-ID: POLICY-1428 Signed-off-by: Jim Hahn --- .../utils/gson/JacksonExclusionStrategy.java | 104 --------------------- 1 file changed, 104 deletions(-) delete mode 100644 utils/src/main/java/org/onap/policy/common/utils/gson/JacksonExclusionStrategy.java (limited to 'utils/src/main/java/org/onap/policy/common') diff --git a/utils/src/main/java/org/onap/policy/common/utils/gson/JacksonExclusionStrategy.java b/utils/src/main/java/org/onap/policy/common/utils/gson/JacksonExclusionStrategy.java deleted file mode 100644 index 96213a65..00000000 --- a/utils/src/main/java/org/onap/policy/common/utils/gson/JacksonExclusionStrategy.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * Copyright (C) 2019 AT&T 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.policy.common.utils.gson; - -import com.google.gson.ExclusionStrategy; -import com.google.gson.FieldAttributes; -import com.google.gson.JsonElement; -import java.lang.reflect.GenericArrayType; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * Excludes all fields from serialization/deserialization, if the class is managed. - */ -public class JacksonExclusionStrategy implements ExclusionStrategy { - - /** - * Classes that are explicitly not managed by the GSON jackson adapters. - */ - // @formatter:off - private static final Set> unmanaged = new HashSet<>(Arrays.asList( - boolean.class, - byte.class, - short.class, - int.class, - long.class, - float.class, - double.class, - char.class, - Boolean.class, - Byte.class, - Short.class, - Integer.class, - Long.class, - Float.class, - Double.class, - Character.class, - String.class)); - // @formatter:on - - /** - * Classes whose subclasses are explicitly not managed by the GSON jackson adapters. - */ - // @formatter:off - private static final Set> unmanagedSuper = new HashSet<>(Arrays.asList( - GenericArrayType.class, - Map.class, - Collection.class, - JsonElement.class)); - // @formatter:on - - @Override - public boolean shouldSkipField(FieldAttributes attrs) { - return isManaged(attrs.getDeclaringClass()); - } - - @Override - public boolean shouldSkipClass(Class clazz) { - return false; - } - - /** - * Determines if a class is managed by this adapter, which typically means that it is - * not a generic class such as {@link JsonElement} or some type of collection. - * - * @param clazz the class to be examined - * @return {@code true} if the class is managed by this adapter, {@code false} - * otherwise - */ - public static boolean isManaged(Class clazz) { - if (clazz.isArray() || clazz.isEnum() || clazz.isPrimitive() || unmanaged.contains(clazz)) { - return false; - } - - for (Class sup : unmanagedSuper) { - if (sup.isAssignableFrom(clazz)) { - return false; - } - } - - return true; - } -} -- cgit 1.2.3-korg