]> git.basschouten.com Git - openhab-addons.git/blob
0360370a0c4ba43b0ea2f131d7c62f98f836f5df
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.boschshc.internal.serialization;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.binding.boschshc.internal.services.dto.BoschSHCServiceState;
17
18 import com.google.gson.Gson;
19 import com.google.gson.GsonBuilder;
20
21 /**
22  * Utilities for JSON serialization and deserialization using Google Gson.
23  *
24  * @author David Pace - Initial contribution
25  *
26  */
27 @NonNullByDefault
28 public final class GsonUtils {
29     private GsonUtils() {
30         // Utility Class
31     }
32
33     /**
34      * The default Gson instance to be used for serialization and deserialization.
35      * <p>
36      * This instance does not serialize or deserialize fields named <code>logger</code>.
37      */
38     public static final Gson DEFAULT_GSON_INSTANCE = new GsonBuilder()
39             .registerTypeAdapter(BoschSHCServiceState.class, new BoschServiceDataDeserializer())
40             .addSerializationExclusionStrategy(new LoggerExclusionStrategy())
41             .addDeserializationExclusionStrategy(new LoggerExclusionStrategy()).create();
42 }