[LIB-2] Add snooker-score-api source files
[snooker-score-api.git] / src / main / java / org / hedgecode / snooker / json / JsonEvent.java
diff --git a/src/main/java/org/hedgecode/snooker/json/JsonEvent.java b/src/main/java/org/hedgecode/snooker/json/JsonEvent.java
new file mode 100644 (file)
index 0000000..2f47ee4
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+ * 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;
+
+    @Override
+    public int eventId() {
+        return eventId;
+    }
+
+    @Override
+    public String name() {
+        return name;
+    }
+
+    @Override
+    public Date startDate() {
+        return startDate;
+    }
+
+    @Override
+    public Date endDate() {
+        return endDate;
+    }
+
+    @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;
+    }
+
+}