diff options
author | Jim Hahn <jrh3@att.com> | 2019-02-12 13:17:09 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2019-02-12 13:45:41 -0500 |
commit | 3cc17f964e46578f8ff6275072d1c77dafa551dd (patch) | |
tree | 6d6184907913d03686fecf4c41b93e49b0a6b2b6 /gson/src/main/java/org/onap/policy/common/gson/internal/MethodDeserializer.java | |
parent | 13ca63c40a379f95539cb4882ec2b645cd0c2a48 (diff) |
Add jackson behavior for methods
Added classes to make gson treat methods as jackson does.
Remove unneeded "forGetter" parameter from constructors.
Fixed sonar issue with too long "if" test.
Corrected comment about annotation names.
Adjusted error message.
Removed unused constant.
Removed trailing spaces.
Change-Id: I3a4fc92193737a0dc89f1218e70f093aedbdb152
Issue-ID: POLICY-1428
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'gson/src/main/java/org/onap/policy/common/gson/internal/MethodDeserializer.java')
-rw-r--r-- | gson/src/main/java/org/onap/policy/common/gson/internal/MethodDeserializer.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/gson/src/main/java/org/onap/policy/common/gson/internal/MethodDeserializer.java b/gson/src/main/java/org/onap/policy/common/gson/internal/MethodDeserializer.java new file mode 100644 index 00000000..bb0724eb --- /dev/null +++ b/gson/src/main/java/org/onap/policy/common/gson/internal/MethodDeserializer.java @@ -0,0 +1,53 @@ +/* + * ============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.gson.internal; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import java.lang.reflect.Method; + +/** + * De-serializer for methods that are exposed. + */ +public class MethodDeserializer extends MethodAdapter implements Deserializer { + + /** + * Constructs the object. + * + * @param gson Gson object providing type adapters + * @param setter method used to set the item within an object + */ + public MethodDeserializer(Gson gson, Method setter) { + super(gson, setter, setter.getGenericParameterTypes()[0]); + } + + @Override + public void getFromTree(JsonObject source, Object target) { + JsonElement jsonEl = source.get(getPropName()); + if (jsonEl == null || jsonEl.isJsonNull()) { + return; + } + + invoke(target, fromJsonTree(jsonEl)); + } + +} |