]> git.basschouten.com Git - openhab-addons.git/blob
fb67e9b0ac83fa3784250c80fb62038ea6dddf4c
[openhab-addons.git] /
1 /*
2  * Copyright 2017 Gregory Moyer
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.openhab.binding.sleepiq.api.impl;
17
18 import org.openhab.binding.sleepiq.api.impl.typeadapters.JSR310TypeAdapters;
19 import org.openhab.binding.sleepiq.api.impl.typeadapters.TimeSinceTypeAdapter;
20 import org.openhab.binding.sleepiq.api.model.TimeSince;
21
22 import com.google.gson.Gson;
23 import com.google.gson.GsonBuilder;
24
25 public class GsonGenerator
26 {
27     public static Gson create()
28     {
29         return create(false);
30     }
31
32     public static Gson create(boolean prettyPrint)
33     {
34         GsonBuilder builder = new GsonBuilder();
35
36         // add Java 8 Time API support
37         JSR310TypeAdapters.registerJSR310TypeAdapters(builder);
38
39         builder.registerTypeAdapter(TimeSince.class, new TimeSinceTypeAdapter());
40
41         if (prettyPrint)
42         {
43             builder.setPrettyPrinting();
44         }
45
46         return builder.create();
47     }
48
49     // @formatter:off
50     private GsonGenerator() {}
51     // @formatter:on
52 }