diff options
author | Jim Hahn <jrh3@att.com> | 2019-02-06 13:14:57 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2019-02-08 17:18:45 -0500 |
commit | 4ec725ef0905cd5490ed71b6576fdc1ef8fef17e (patch) | |
tree | 45fa7a22bbb586b3c6bf3821dcd4618403dbe9e5 /utils/src/main | |
parent | 7f1be8710503b4c34a49c96be8a6818757499bd6 (diff) |
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 <jrh3@att.com>
Diffstat (limited to 'utils/src/main')
-rw-r--r-- | utils/src/main/java/org/onap/policy/common/utils/gson/JacksonExclusionStrategy.java | 104 |
1 files changed, 0 insertions, 104 deletions
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<Class<?>> 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<Class<?>> 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 - * <i>not</i> 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; - } -} |