]> git.basschouten.com Git - openhab-addons.git/blob
4de838cf870c18a32ae96ac0375e0e8748bb1e70
[openhab-addons.git] /
1 /*
2  * Copyright (C) 2016 Gson Type Adapter Authors.
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
17 /*
18  * Imported from https://github.com/google-gson/typeadapters/tree/master/jsr310/src
19  * and repackaged to avoid the default package.
20  */
21 package org.openhab.binding.sleepiq.api.impl.typeadapters;
22
23 import com.google.gson.GsonBuilder;
24
25 import java.time.*;
26
27 /**
28  * Helper methods to register JSR310 type adapters.
29  *
30  * @author Christophe Bornet
31  */
32 public class JSR310TypeAdapters {
33
34   private JSR310TypeAdapters() {
35   }
36
37   public static GsonBuilder registerDurationTypeAdapter(GsonBuilder gsonBuilder) {
38     return gsonBuilder.registerTypeAdapter(Duration.class, new DurationTypeAdapter());
39   }
40
41   public static GsonBuilder registerInstantTypeAdapter(GsonBuilder gsonBuilder) {
42     return gsonBuilder.registerTypeAdapter(Instant.class, new InstantTypeAdapter());
43   }
44
45   public static GsonBuilder registerLocalDateTimeTypeAdapter(GsonBuilder gsonBuilder) {
46     return gsonBuilder.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter());
47   }
48
49   public static GsonBuilder registerLocalDateTypeAdapter(GsonBuilder gsonBuilder) {
50     return gsonBuilder.registerTypeAdapter(LocalDate.class, new LocalDateTypeAdapter());
51   }
52
53   public static GsonBuilder registerLocalTimeTypeAdapter(GsonBuilder gsonBuilder) {
54     return gsonBuilder.registerTypeAdapter(LocalTime.class, new LocalTimeTypeAdapter());
55   }
56
57   public static GsonBuilder registerMonthDayTypeAdapter(GsonBuilder gsonBuilder) {
58     return gsonBuilder.registerTypeAdapter(MonthDay.class, new MonthDayTypeAdapter());
59   }
60
61   public static GsonBuilder registerOffsetDateTimeTypeAdapter(GsonBuilder gsonBuilder) {
62     return gsonBuilder.registerTypeAdapter(OffsetDateTime.class, new OffsetDateTimeTypeAdapter());
63   }
64
65   public static GsonBuilder registerOffsetTimeTypeAdapter(GsonBuilder gsonBuilder) {
66     return gsonBuilder.registerTypeAdapter(OffsetTime.class, new OffsetTimeTypeAdapter());
67   }
68
69   public static GsonBuilder registerPeriodTypeAdapter(GsonBuilder gsonBuilder) {
70     return gsonBuilder.registerTypeAdapter(Period.class, new PeriodTypeAdapter());
71   }
72
73   public static GsonBuilder registerYearMonthTypeAdapter(GsonBuilder gsonBuilder) {
74     return gsonBuilder.registerTypeAdapter(YearMonth.class, new YearMonthTypeAdapter());
75   }
76
77   public static GsonBuilder registerYearTypeAdapter(GsonBuilder gsonBuilder) {
78     return gsonBuilder.registerTypeAdapter(Year.class, new YearTypeAdapter());
79   }
80
81   public static GsonBuilder registerZonedDateTimeTypeAdapter(GsonBuilder gsonBuilder) {
82     return gsonBuilder.registerTypeAdapter(ZonedDateTime.class, new ZonedDateTimeTypeAdapter());
83   }
84
85
86   /**
87    * Helper method to register all the available JSR310 adapters at once.
88    * @param gsonBuilder the gsonBuilder on which all the JSR310 adapters must be registered.
89    * @return the gsonBuilder with the JSR310 adapters registered.
90    */
91   public static GsonBuilder registerJSR310TypeAdapters(GsonBuilder gsonBuilder) {
92     registerDurationTypeAdapter(gsonBuilder);
93     registerInstantTypeAdapter(gsonBuilder);
94     registerLocalDateTimeTypeAdapter(gsonBuilder);
95     registerLocalDateTypeAdapter(gsonBuilder);
96     registerLocalTimeTypeAdapter(gsonBuilder);
97     registerMonthDayTypeAdapter(gsonBuilder);
98     registerOffsetDateTimeTypeAdapter(gsonBuilder);
99     registerOffsetTimeTypeAdapter(gsonBuilder);
100     registerPeriodTypeAdapter(gsonBuilder);
101     registerYearMonthTypeAdapter(gsonBuilder);
102     registerYearTypeAdapter(gsonBuilder);
103     registerZonedDateTimeTypeAdapter(gsonBuilder);
104
105     return gsonBuilder;
106   }
107
108
109 }