[LIB-10] SerialVersionUID for Serializable classes
[snooker-score-api.git] / src / main / java / org / hedgecode / snooker / json / JsonMatch.java
1 /*
2  * Copyright (c) 2017-2020. Developed by Hedgecode.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.hedgecode.snooker.json;
18
19 import java.io.Serializable;
20 import java.util.Date;
21
22 import com.google.gson.annotations.Expose;
23 import com.google.gson.annotations.SerializedName;
24
25 import org.hedgecode.snooker.annotation.IsURL;
26 import org.hedgecode.snooker.annotation.WithHTMLTags;
27 import org.hedgecode.snooker.api.Event;
28 import org.hedgecode.snooker.api.Match;
29 import org.hedgecode.snooker.api.Player;
30
31 /**
32  * Match Entity to JSON deserialize.
33  *
34  * @author Dmitry Samoshin aka gotty
35  */
36 public class JsonMatch extends JsonIdEntity implements Match, Serializable {
37
38     private static final long serialVersionUID = 1503003854433798119L;
39
40     @SerializedName("ID")
41     private int matchId;
42     @SerializedName("EventID")
43     private int eventId;
44     @Expose
45     private Event event;
46     @SerializedName("Round")
47     private int round;
48     @SerializedName("Number")
49     private int number;
50     @SerializedName("Player1ID")
51     private int player1Id;
52     @Expose
53     private Player player1;
54     @SerializedName("Score1")
55     private int score1;
56     @SerializedName("Walkover1")
57     private boolean walkover1;
58     @SerializedName("Player2ID")
59     private int player2Id;
60     @Expose
61     private Player player2;
62     @SerializedName("Score2")
63     private int score2;
64     @SerializedName("Walkover2")
65     private boolean walkover2;
66     @SerializedName("WinnerID")
67     private int winnerId;
68     @Expose
69     private Player winner;
70     @SerializedName("Unfinished")
71     private boolean unfinished;
72     @SerializedName("OnBreak")
73     private boolean onBreak;
74     @SerializedName("WorldSnookerID")
75     private int worldSnookerId;
76     @IsURL
77     @SerializedName("LiveUrl")
78     private String liveUrl;
79     @IsURL
80     @SerializedName("DetailsUrl")
81     private String detailsUrl;
82     @SerializedName("PointsDropped")
83     private boolean pointsDropped;
84     @SerializedName("ShowCommonNote")
85     private boolean showCommonNote;
86     @SerializedName("Estimated")
87     private boolean estimated;
88     @SerializedName("Type")
89     private int type;
90     @SerializedName("TableNo")
91     private int tableNo;
92     @IsURL
93     @SerializedName("VideoURL")
94     private String videoUrl;
95     @SerializedName("InitDate")
96     private Date initDate;
97     @SerializedName("ModDate")
98     private Date modDate;
99     @SerializedName("StartDate")
100     private Date startDate;
101     @SerializedName("EndDate")
102     private Date endDate;
103     @SerializedName("ScheduledDate")
104     private Date scheduledDate;
105     @WithHTMLTags
106     @SerializedName("FrameScores")
107     private String frameScores;
108     @WithHTMLTags
109     @SerializedName("Sessions")
110     private String sessions;
111     @WithHTMLTags
112     @SerializedName("Note")
113     private String note;
114     @WithHTMLTags
115     @SerializedName("ExtendedNote")
116     private String extendedNote;
117
118     JsonMatch() {
119     }
120
121     @Override
122     public int matchId() {
123         return matchId;
124     }
125
126     @Override
127     public int eventId() {
128         return eventId;
129     }
130
131     @Override
132     public Event event() {
133         return event;
134     }
135
136     public void setEvent(Event event) {
137         if (event != null && eventId == event.eventId())
138             this.event = event;
139     }
140
141     @Override
142     public int round() {
143         return round;
144     }
145
146     @Override
147     public int number() {
148         return number;
149     }
150
151     @Override
152     public int player1Id() {
153         return player1Id;
154     }
155
156     @Override
157     public Player player1() {
158         return player1;
159     }
160
161     public void setPlayer1(Player player) {
162         if (player != null && player1Id == player.playerId())
163             this.player1 = player;
164     }
165
166     @Override
167     public int score1() {
168         return score1;
169     }
170
171     @Override
172     public boolean walkover1() {
173         return walkover1;
174     }
175
176     @Override
177     public int player2Id() {
178         return player2Id;
179     }
180
181     @Override
182     public Player player2() {
183         return player2;
184     }
185
186     public void setPlayer2(Player player) {
187         if (player != null && player2Id == player.playerId())
188             this.player2 = player;
189     }
190
191     @Override
192     public int score2() {
193         return score2;
194     }
195
196     @Override
197     public boolean walkover2() {
198         return walkover2;
199     }
200
201     @Override
202     public int winnerId() {
203         return winnerId;
204     }
205
206     @Override
207     public Player winner() {
208         return winner;
209     }
210
211     public void setWinner(Player winner) {
212         if (winner != null && winnerId == winner.playerId())
213             this.winner = winner;
214     }
215
216     @Override
217     public boolean unfinished() {
218         return unfinished;
219     }
220
221     @Override
222     public boolean onBreak() {
223         return onBreak;
224     }
225
226     @Override
227     public int worldSnookerId() {
228         return worldSnookerId;
229     }
230
231     @Override
232     public String liveUrl() {
233         return liveUrl;
234     }
235
236     @Override
237     public String detailsUrl() {
238         return detailsUrl;
239     }
240
241     @Override
242     public boolean pointsDropped() {
243         return pointsDropped;
244     }
245
246     @Override
247     public boolean showCommonNote() {
248         return showCommonNote;
249     }
250
251     @Override
252     public boolean estimated() {
253         return estimated;
254     }
255
256     @Override
257     public int type() {
258         return type;
259     }
260
261     @Override
262     public int tableNo() {
263         return tableNo;
264     }
265
266     @Override
267     public String videoUrl() {
268         return videoUrl;
269     }
270
271     @Override
272     public Date initDate() {
273         return initDate == null
274                 ? null
275                 : new Date(initDate.getTime());
276     }
277
278     @Override
279     public Date modDate() {
280         return modDate == null
281                 ? null
282                 : new Date(modDate.getTime());
283     }
284
285     @Override
286     public Date startDate() {
287         return startDate == null
288                 ? null
289                 : new Date(startDate.getTime());
290     }
291
292     @Override
293     public Date endDate() {
294         return endDate == null
295                 ? null
296                 : new Date(endDate.getTime());
297     }
298
299     @Override
300     public Date scheduledDate() {
301         return scheduledDate == null
302                 ? null
303                 : new Date(scheduledDate.getTime());
304     }
305
306     @Override
307     public String frameScores() {
308         return frameScores;
309     }
310
311     @Override
312     public String sessions() {
313         return sessions;
314     }
315
316     @Override
317     public String note() {
318         return note;
319     }
320
321     @Override
322     public String extendedNote() {
323         return extendedNote;
324     }
325
326     @Override
327     public int getId() {
328         return matchId;
329     }
330
331 }