// Path: library/src/main/java/com/rejasupotaro/octodroid/models/Event.java
// public class Event extends Resource {
//     @SerializedName("id")
//     private long id;
//     @SerializedName("type")
//     private Type type;
//     @SerializedName("public")
//     private boolean isPublic;
//     @SerializedName("payload")
//     private Payload payload;
//     @SerializedName("repo")
//     private Repository repository;
//     @SerializedName("actor")
//     private User user;
//     @SerializedName("org")
//     private JSONObject organization;
//     @SerializedName("created_at")
//     private Date createdAt;
// 
//     public long getId() {
//         return id;
//     }
// 
//     public Type getType() {
//         return type;
//     }
// 
//     public boolean isPublic() {
//         return isPublic;
//     }
// 
//     public Payload getPayload() {
//         return payload;
//     }
// 
//     public Repository getRepository() {
//         return repository;
//     }
// 
//     public User getUser() {
//         return user;
//     }
// 
//     public JSONObject getOrganization() {
//         return organization;
//     }
// 
//     public Date getCreatedAt() {
//         return createdAt;
//     }
// 
//     public enum Type {
//         COMMIT_COMMENT("CommitCommentEvent"),
//         CREATE("CreateEvent"),
//         DELETE("DeleteEvent"),
//         DEPLOYMENT("DeploymentEvent"),
//         DEVELOPMENT_STATUS("DeploymentStatusEvent"),
//         DOWNLOAD("DownloadEvent"),
//         FOLLOW("FollowEvent"),
//         FORK("ForkEvent"),
//         FORK_APPLY("ForkApplyEvent"),
//         GIST("GistEvent"),
//         GOLLUM("GollumEvent"),
//         ISSUE_COMMENT("IssueCommentEvent"),
//         ISSUES("IssuesEvent"),
//         MEMBER("MemberEvent"),
//         MEMBERSHIP("MembershipEvent"),
//         PAGE_BUILD("PageBuildEvent"),
//         PUBLIC("PublicEvent"),
//         PULL_REQUEST("PullRequestEvent"),
//         PULL_REQUEST_REVIEW_COMMENT("PullRequestReviewCommentEvent"),
//         PUSH("PushEvent"),
//         RELEASE("ReleaseEvent"),
//         REPOSITORY("RepositoryEvent"),
//         STATUS("StatusEvent"),
//         TEAM_ADD("TeamAddEvent"),
//         WATCH("WatchEvent");
// 
//         private String src;
// 
//         Type(String src) {
//             this.src = src;
//         }
// 
//         public static Type of(String src) {
//             for (Type type : values()) {
//                 if (type.src.equals(src)) {
//                     return type;
//                 }
//             }
//             throw new IllegalArgumentException("Given type is not supported: " + src);
//         }
//     }
// }


import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.google.gson.reflect.TypeToken;
import com.rejasupotaro.octodroid.models.Event;
import java.lang.reflect.Type;
package com.rejasupotaro.octodroid;



public class GsonProvider {
    private static Gson gson = new GsonBuilder()
            .registerTypeAdapter(EventTypeConverter.TYPE, new EventTypeConverter())
            .setPrettyPrinting()
            .create();

// Path: library/src/main/java/com/rejasupotaro/octodroid/models/Event.java
// public class Event extends Resource {
//     @SerializedName("id")
//     private long id;
//     @SerializedName("type")
//     private Type type;
//     @SerializedName("public")
//     private boolean isPublic;
//     @SerializedName("payload")
//     private Payload payload;
//     @SerializedName("repo")
//     private Repository repository;
//     @SerializedName("actor")
//     private User user;
//     @SerializedName("org")
//     private JSONObject organization;
//     @SerializedName("created_at")
//     private Date createdAt;
// 
//     public long getId() {
//         return id;
//     }
// 
//     public Type getType() {
//         return type;
//     }
// 
//     public boolean isPublic() {
//         return isPublic;
//     }
// 
//     public Payload getPayload() {
//         return payload;
//     }
// 
//     public Repository getRepository() {
//         return repository;
//     }
// 
//     public User getUser() {
//         return user;
//     }
// 
//     public JSONObject getOrganization() {
//         return organization;
//     }
// 
//     public Date getCreatedAt() {
//         return createdAt;
//     }
// 
//     public enum Type {
//         COMMIT_COMMENT("CommitCommentEvent"),
//         CREATE("CreateEvent"),
//         DELETE("DeleteEvent"),
//         DEPLOYMENT("DeploymentEvent"),
//         DEVELOPMENT_STATUS("DeploymentStatusEvent"),
//         DOWNLOAD("DownloadEvent"),
//         FOLLOW("FollowEvent"),
//         FORK("ForkEvent"),
//         FORK_APPLY("ForkApplyEvent"),
//         GIST("GistEvent"),
//         GOLLUM("GollumEvent"),
//         ISSUE_COMMENT("IssueCommentEvent"),
//         ISSUES("IssuesEvent"),
//         MEMBER("MemberEvent"),
//         MEMBERSHIP("MembershipEvent"),
//         PAGE_BUILD("PageBuildEvent"),
//         PUBLIC("PublicEvent"),
//         PULL_REQUEST("PullRequestEvent"),
//         PULL_REQUEST_REVIEW_COMMENT("PullRequestReviewCommentEvent"),
//         PUSH("PushEvent"),
//         RELEASE("ReleaseEvent"),
//         REPOSITORY("RepositoryEvent"),
//         STATUS("StatusEvent"),
//         TEAM_ADD("TeamAddEvent"),
//         WATCH("WatchEvent");
// 
//         private String src;
// 
//         Type(String src) {
//             this.src = src;
//         }
// 
//         public static Type of(String src) {
//             for (Type type : values()) {
//                 if (type.src.equals(src)) {
//                     return type;
//                 }
//             }
//             throw new IllegalArgumentException("Given type is not supported: " + src);
//         }
//     }
// }


// Path: library/src/main/java/com/rejasupotaro/octodroid/GsonProvider.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.google.gson.reflect.TypeToken;
import com.rejasupotaro.octodroid.models.Event;
import java.lang.reflect.Type;

package com.rejasupotaro.octodroid;



public class GsonProvider {
    private static Gson gson = new GsonBuilder()
            .registerTypeAdapter(EventTypeConverter.TYPE, new EventTypeConverter())
            .setPrettyPrinting()
            .create();

    public static void set(Gson gson) {