/* * Copyright (c) 2017. Developed by Hedgecode. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.hedgecode.snooker.json; import java.util.Date; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import org.hedgecode.snooker.api.Event; import org.hedgecode.snooker.api.Season; /** * Event Entity to JSON deserialize. * * @author Dmitry Samoshin aka gotty */ public class JsonEvent extends JsonIdEntity implements Event { @SerializedName("ID") private int eventId; @SerializedName("Name") private String name; @SerializedName("StartDate") private Date startDate; @SerializedName("EndDate") private Date endDate; @SerializedName("Sponsor") private String sponsor; @SerializedName("Season") private int seasonYear; @Expose private Season season; @SerializedName("Type") private String type; @SerializedName("Num") private int num; @SerializedName("Venue") private String venue; @SerializedName("City") private String city; @SerializedName("Country") private String country; @SerializedName("Discipline") private String discipline; @SerializedName("Main") private int mainEventId; @Expose private Event mainEvent; @SerializedName("Sex") private String sex; @SerializedName("AgeGroup") private String ageGroup; @SerializedName("Url") private String url; @SerializedName("Related") private String related; @SerializedName("Stage") private String stage; @SerializedName("ValueType") private String valueType; @SerializedName("ShortName") private String shortName; @SerializedName("WorldSnookerId") private int worldSnookerId; @SerializedName("RankingType") private String rankingType; @SerializedName("EventPredictionID") private int eventPredictionId; @SerializedName("Team") private boolean team; @SerializedName("Format") private int format; @SerializedName("Twitter") private String twitter; @SerializedName("HashTag") private String hashTag; @SerializedName("ConversionRate") private float conversionRate; @SerializedName("AllRoundsAdded") private boolean allRoundsAdded; @SerializedName("PhotoURLs") private String photoUrls; @SerializedName("NumCompetitors") private int numCompetitors; @SerializedName("NumUpcoming") private int numUpcoming; @SerializedName("NumActive") private int numActive; @SerializedName("NumResults") private int numResults; @SerializedName("Note") private String note; @SerializedName("CommonNote") private String commonNote; @SerializedName("DefendingChampion") private int defendingChampion; @SerializedName("PreviousEdition") private int previousEdition; protected JsonEvent() { } @Override public int eventId() { return eventId; } @Override public String name() { return name; } @Override public Date startDate() { return startDate == null ? null : new Date(startDate.getTime()); } @Override public Date endDate() { return endDate == null ? null : new Date(endDate.getTime()); } @Override public String sponsor() { return sponsor; } @Override public Season season() { if (season == null) season = Season.getSeason(seasonYear); return season; } @Override public String type() { return type; } @Override public int num() { return num; } @Override public String venue() { return venue; } @Override public String city() { return city; } @Override public String country() { return country; } @Override public String discipline() { return discipline; } @Override public int mainEventId() { return mainEventId; } @Override public Event mainEvent() { if (mainEvent == null && mainEventId == eventId) mainEvent = this; return mainEvent; } public void setMainEvent(Event event) { if (event != null && eventId == event.eventId()) mainEvent = event; } @Override public String sex() { return sex; } @Override public String ageGroup() { return ageGroup; } @Override public String url() { return url; } @Override public String related() { return related; } @Override public String stage() { return stage; } @Override public String valueType() { return valueType; } @Override public String shortName() { return shortName; } @Override public int worldSnookerId() { return worldSnookerId; } @Override public String rankingType() { return rankingType; } @Override public int eventPredictionId() { return eventPredictionId; } @Override public boolean team() { return team; } @Override public int format() { return format; } @Override public String twitter() { return twitter; } @Override public String hashTag() { return hashTag; } @Override public float conversionRate() { return conversionRate; } @Override public boolean allRoundsAdded() { return allRoundsAdded; } @Override public String photoUrls() { return photoUrls; } @Override public int numCompetitors() { return numCompetitors; } @Override public int numUpcoming() { return numUpcoming; } @Override public int numActive() { return numActive; } @Override public int numResults() { return numResults; } @Override public String note() { return note; } @Override public String commonNote() { return commonNote; } @Override public int defendingChampion() { return defendingChampion; } @Override public int previousEdition() { return previousEdition; } @Override public int getId() { return eventId; } }