Welcome to mirror list, hosted at ThFree Co, Russian Federation.

GsonConfig.java « api « deck « nextcloud « niedermann « it « java « main « src « app - github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: aa949bff1948aef131a18101b0335cf8a72b9780 (plain)
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();
    }

}