1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
package it.niedermann.nextcloud.deck.api;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.Date;
import java.util.List;
import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
import it.niedermann.nextcloud.deck.model.ocs.Activity;
import it.niedermann.nextcloud.deck.model.ocs.Capabilities;
/**
* Created by david on 27.06.17.
*/
public class GsonConfig {
public static final String DATE_PATTERN = "yyyy-MM-dd'T'hh:mm:ssZ";
public static Gson getGson() {
Type boardList = new TypeToken<List<FullBoard>>() {}.getType();
Type board = new TypeToken<FullBoard>() {}.getType();
Type cardList = new TypeToken<FullCard>() {}.getType();
Type card = new TypeToken<FullCard>() {}.getType();
Type labelList = new TypeToken<Label>() {}.getType();
Type label = new TypeToken<Label>() {}.getType();
Type stackList = new TypeToken<List<FullStack>>() {}.getType();
Type stack = new TypeToken<FullStack>() {}.getType();
Type capabilities = new TypeToken<Capabilities>() {}.getType();
Type capabilitiesList = new TypeToken<List<Capabilities>>() {}.getType();
Type activity = new TypeToken<Activity>() {}.getType();
Type activityList = new TypeToken<List<Activity>>() {}.getType();
return new GsonBuilder()
.setDateFormat(DATE_PATTERN)
.setLenient()
.registerTypeAdapter(Date.class, new GsonUTCDateAdapter())
.registerTypeAdapter(boardList, new NextcloudArrayDeserializer<>("boards", FullBoard.class))
.registerTypeAdapter(board, new NextcloudDeserializer<>("board", FullBoard.class))
.registerTypeAdapter(cardList, new NextcloudArrayDeserializer<>("cards", FullCard.class))
.registerTypeAdapter(card, new NextcloudDeserializer<>("card", FullCard.class))
.registerTypeAdapter(labelList, new NextcloudArrayDeserializer<>("labels", Label.class))
.registerTypeAdapter(label, new NextcloudDeserializer<>("label", Label.class))
.registerTypeAdapter(stackList, new NextcloudArrayDeserializer<>("stacks", FullStack.class))
.registerTypeAdapter(stack, new NextcloudDeserializer<>("stack", FullStack.class))
.registerTypeAdapter(capabilitiesList, new NextcloudArrayDeserializer<>("capabilities", Capabilities.class))
.registerTypeAdapter(capabilities, new NextcloudDeserializer<>("capability", Capabilities.class))
.registerTypeAdapter(activityList, new NextcloudDeserializer<>("activities", Activity.class))
.registerTypeAdapter(activity, new NextcloudDeserializer<>("activity", Activity.class))
.create();
}
}
|