From edb206228987f506c5dc7a20585537b71f7a2e9d Mon Sep 17 00:00:00 2001 From: gotty Date: Tue, 24 Jan 2017 23:19:57 +0000 Subject: [PATCH] [LIB-5] Collection empty objects,reporting and serializable git-svn-id: https://svn.hedgecode.org/lib/snooker-score-api/trunk@102 fb0bcced-7025-49ed-a12f-f98bce993226 --- pom.xml | 73 +++++++++++++++++++++- .../org/hedgecode/snooker/SnookerScoreApp.java | 8 ++- .../java/org/hedgecode/snooker/api/Season.java | 7 ++- .../snooker/compare/EventComparators.java | 5 +- .../snooker/compare/MatchComparators.java | 5 +- .../snooker/compare/PlayerComparators.java | 5 +- .../snooker/compare/RankingComparators.java | 5 +- .../snooker/json/JsonCollectionEntity.java | 11 +++- .../java/org/hedgecode/snooker/json/JsonEvent.java | 11 +++- .../org/hedgecode/snooker/json/JsonEvents.java | 42 ++++++++----- .../org/hedgecode/snooker/json/JsonIdEntity.java | 4 +- .../java/org/hedgecode/snooker/json/JsonMatch.java | 23 +++++-- .../org/hedgecode/snooker/json/JsonMatches.java | 14 +++-- .../hedgecode/snooker/json/JsonOngoingMatch.java | 3 + .../org/hedgecode/snooker/json/JsonPlayer.java | 7 ++- .../org/hedgecode/snooker/json/JsonPlayers.java | 10 +-- .../org/hedgecode/snooker/json/JsonRanking.java | 3 + .../org/hedgecode/snooker/json/JsonRankings.java | 5 +- .../hedgecode/snooker/json/JsonSerializable.java | 28 --------- .../snooker/request/AbstractRequester.java | 5 +- .../hedgecode/snooker/request/RequestParams.java | 1 + 21 files changed, 193 insertions(+), 82 deletions(-) delete mode 100644 src/main/java/org/hedgecode/snooker/json/JsonSerializable.java diff --git a/pom.xml b/pom.xml index 59baa73..71b33dd 100644 --- a/pom.xml +++ b/pom.xml @@ -72,10 +72,12 @@ 2.4.1 2.5.3 3.4 + 2.8.1 + 3.0.4 2.7 10012 LIB - 2 + 5 @@ -164,6 +166,35 @@ + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + ${mavenReportsPluginVersion} + + false + + + + + index + summary + dependency-info + project-team + scm + dependency-management + dependencies + plugin-management + plugins + distribution-management + + + + + + + jar-with-dependencies @@ -203,6 +234,46 @@ + + reporting + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + ${mavenReportsPluginVersion} + + + org.apache.maven.plugins + maven-javadoc-plugin + + true + true + + org//hedgecode/snooker/cache/assign/*.java + org//hedgecode/snooker/compare/*.java + org//hedgecode/snooker/gson/*.java + org//hedgecode/snooker/json/*.java + org//hedgecode/snooker/request/*.java + + + + + default + + javadoc + + + + + + org.codehaus.mojo + findbugs-maven-plugin + ${mavenFindBugsPluginVersion} + + + + diff --git a/src/main/java/org/hedgecode/snooker/SnookerScoreApp.java b/src/main/java/org/hedgecode/snooker/SnookerScoreApp.java index e81bc6e..286c966 100644 --- a/src/main/java/org/hedgecode/snooker/SnookerScoreApp.java +++ b/src/main/java/org/hedgecode/snooker/SnookerScoreApp.java @@ -16,6 +16,7 @@ package org.hedgecode.snooker; +import java.text.DateFormat; import java.text.SimpleDateFormat; import org.hedgecode.snooker.api.APIException; @@ -45,7 +46,7 @@ public final class SnookerScoreApp { private static final String UPCOMING_EVENTS = " Upcoming Snooker Events: "; private static final String INDENT = " "; - private static SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy"); + private static final String DATE_FORMAT = "dd.MM.yyyy"; private static final int UPCOMING_COUNT = 5; @@ -86,10 +87,11 @@ public final class SnookerScoreApp { } private static void printEvent(Event event) { + final DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); System.out.println( INDENT + event.name() - + " [" + DATE_FORMAT.format(event.startDate()) - + " - " + DATE_FORMAT.format(event.endDate()) + "]" + + " [" + dateFormat.format(event.startDate()) + + " - " + dateFormat.format(event.endDate()) + "]" + " (" + event.country() + ", " + event.city() + ")" ); } diff --git a/src/main/java/org/hedgecode/snooker/api/Season.java b/src/main/java/org/hedgecode/snooker/api/Season.java index 73ee53a..f4b1cf5 100644 --- a/src/main/java/org/hedgecode/snooker/api/Season.java +++ b/src/main/java/org/hedgecode/snooker/api/Season.java @@ -16,6 +16,7 @@ package org.hedgecode.snooker.api; +import java.io.Serializable; import java.util.Calendar; import java.util.LinkedHashMap; import java.util.Map; @@ -25,7 +26,7 @@ import java.util.Map; * * @author Dmitry Samoshin aka gotty */ -public class Season { +public class Season implements Serializable { private static final Calendar CURRENT_CALENDAR = Calendar.getInstance(); @@ -35,12 +36,12 @@ public class Season { ? CURRENT_CALENDAR.get(Calendar.YEAR) : CURRENT_CALENDAR.get(Calendar.YEAR) - 1; - private static final int ALL_SEASONS = -1; + public static final int ALL_SEASONS = -1; public static final Season ALL = new Season(ALL_SEASONS); public static final Season CURRENT_SEASON = new Season(CURRENT_YEAR); - public static Map SEASONS = new LinkedHashMap<>(); + private static final Map SEASONS = new LinkedHashMap<>(); static { for (int year = BEGIN_YEAR; year < CURRENT_YEAR; ++year) { diff --git a/src/main/java/org/hedgecode/snooker/compare/EventComparators.java b/src/main/java/org/hedgecode/snooker/compare/EventComparators.java index 481435d..860c61d 100644 --- a/src/main/java/org/hedgecode/snooker/compare/EventComparators.java +++ b/src/main/java/org/hedgecode/snooker/compare/EventComparators.java @@ -16,6 +16,7 @@ package org.hedgecode.snooker.compare; +import java.io.Serializable; import java.util.Comparator; import org.hedgecode.snooker.api.Event; @@ -42,7 +43,7 @@ public enum EventComparators { return comparator; } - static class DateComparator implements Comparator { + static class DateComparator implements Comparator, Serializable { @Override public int compare(Event event1, Event event2) { @@ -51,7 +52,7 @@ public enum EventComparators { } - static class SnookerIdComparator implements Comparator { + static class SnookerIdComparator implements Comparator, Serializable { @Override public int compare(Event event1, Event event2) { diff --git a/src/main/java/org/hedgecode/snooker/compare/MatchComparators.java b/src/main/java/org/hedgecode/snooker/compare/MatchComparators.java index 939b1bc..03c52f1 100644 --- a/src/main/java/org/hedgecode/snooker/compare/MatchComparators.java +++ b/src/main/java/org/hedgecode/snooker/compare/MatchComparators.java @@ -16,6 +16,7 @@ package org.hedgecode.snooker.compare; +import java.io.Serializable; import java.util.Comparator; import org.hedgecode.snooker.api.Match; @@ -42,7 +43,7 @@ public enum MatchComparators { return comparator; } - static class RoundNumberComparator implements Comparator { + static class RoundNumberComparator implements Comparator, Serializable { @Override public int compare(Match match1, Match match2) { @@ -53,7 +54,7 @@ public enum MatchComparators { } - static class EventComparator implements Comparator { + static class EventComparator implements Comparator, Serializable { @Override public int compare(Match match1, Match match2) { diff --git a/src/main/java/org/hedgecode/snooker/compare/PlayerComparators.java b/src/main/java/org/hedgecode/snooker/compare/PlayerComparators.java index 834f2e7..77e7c0b 100644 --- a/src/main/java/org/hedgecode/snooker/compare/PlayerComparators.java +++ b/src/main/java/org/hedgecode/snooker/compare/PlayerComparators.java @@ -16,6 +16,7 @@ package org.hedgecode.snooker.compare; +import java.io.Serializable; import java.util.Comparator; import org.hedgecode.snooker.api.Player; @@ -42,7 +43,7 @@ public enum PlayerComparators { return comparator; } - static class NameComparator implements Comparator { + static class NameComparator implements Comparator, Serializable { @Override public int compare(Player player1, Player player2) { @@ -51,7 +52,7 @@ public enum PlayerComparators { } - static class AgeComparator implements Comparator { + static class AgeComparator implements Comparator, Serializable { @Override public int compare(Player player1, Player player2) { diff --git a/src/main/java/org/hedgecode/snooker/compare/RankingComparators.java b/src/main/java/org/hedgecode/snooker/compare/RankingComparators.java index f7551e0..54aa099 100644 --- a/src/main/java/org/hedgecode/snooker/compare/RankingComparators.java +++ b/src/main/java/org/hedgecode/snooker/compare/RankingComparators.java @@ -16,6 +16,7 @@ package org.hedgecode.snooker.compare; +import java.io.Serializable; import java.util.Comparator; import org.hedgecode.snooker.api.Ranking; @@ -42,7 +43,7 @@ public enum RankingComparators { return comparator; } - static class PositionComparator implements Comparator { + static class PositionComparator implements Comparator, Serializable { @Override public int compare(Ranking ranking1, Ranking ranking2) { @@ -51,7 +52,7 @@ public enum RankingComparators { } - static class SumComparator implements Comparator { + static class SumComparator implements Comparator, Serializable { @Override public int compare(Ranking ranking1, Ranking ranking2) { diff --git a/src/main/java/org/hedgecode/snooker/json/JsonCollectionEntity.java b/src/main/java/org/hedgecode/snooker/json/JsonCollectionEntity.java index 3223323..ef67ff6 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonCollectionEntity.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonCollectionEntity.java @@ -16,6 +16,7 @@ package org.hedgecode.snooker.json; +import java.io.Serializable; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; @@ -33,20 +34,24 @@ import org.hedgecode.snooker.api.IdEntity; * @author Dmitry Samoshin aka gotty */ public abstract class JsonCollectionEntity - implements CollectionEntity, JsonSerializable + implements CollectionEntity, Serializable { private final Map entities = new LinkedHashMap<>(); protected JsonCollectionEntity(E[] entities) { for (E entity : entities) { if (entity != null) - this.entities.put(entity.getId(), entity); + this.entities.put( + entity.getId(), entity + ); } } protected JsonCollectionEntity(List entities) { for (E entity : entities) { - this.entities.put(entity.getId(), entity); + this.entities.put( + entity.getId(), entity + ); } } diff --git a/src/main/java/org/hedgecode/snooker/json/JsonEvent.java b/src/main/java/org/hedgecode/snooker/json/JsonEvent.java index 2f47ee4..348d1a5 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonEvent.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonEvent.java @@ -112,6 +112,9 @@ public class JsonEvent extends JsonIdEntity implements Event { @SerializedName("PreviousEdition") private int previousEdition; + protected JsonEvent() { + } + @Override public int eventId() { return eventId; @@ -124,12 +127,16 @@ public class JsonEvent extends JsonIdEntity implements Event { @Override public Date startDate() { - return startDate; + return startDate == null + ? null + : new Date(startDate.getTime()); } @Override public Date endDate() { - return endDate; + return endDate == null + ? null + : new Date(endDate.getTime()); } @Override diff --git a/src/main/java/org/hedgecode/snooker/json/JsonEvents.java b/src/main/java/org/hedgecode/snooker/json/JsonEvents.java index 78474de..664dcd8 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonEvents.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonEvents.java @@ -17,6 +17,9 @@ package org.hedgecode.snooker.json; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; import java.util.List; import org.hedgecode.snooker.api.Event; @@ -31,6 +34,8 @@ import org.hedgecode.snooker.compare.EventComparators; */ public class JsonEvents extends JsonCollectionEntity implements Events { + private static final JsonEvents EMPTY = new JsonEvents(new Event[0]); + protected JsonEvents(Event[] entities) { super(entities); } @@ -45,7 +50,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.season().equals(season)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -54,7 +59,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.type().equals(type)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -63,7 +68,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.city().equals(city)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -72,7 +77,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.country().equals(country)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -81,7 +86,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.sex().equals(sex)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -90,7 +95,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.stage().equals(stage)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -99,7 +104,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.valueType().equals(valueType)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -108,7 +113,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.worldSnookerId() == worldSnookerId) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -116,9 +121,9 @@ public class JsonEvents extends JsonCollectionEntity implements Events { List events = new ArrayList<>(); long currentTime = System.currentTimeMillis(); for (Event event : this) - if (event.endDate().getTime() < currentTime) + if (currentTime > nextDate(event.endDate()).getTime()) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -126,10 +131,10 @@ public class JsonEvents extends JsonCollectionEntity implements Events { List events = new ArrayList<>(); long currentTime = System.currentTimeMillis(); for (Event event : this) - if (event.startDate().getTime() < currentTime - && event.endDate().getTime() > currentTime) + if (currentTime > event.startDate().getTime() + && currentTime < nextDate(event.endDate()).getTime()) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -137,9 +142,9 @@ public class JsonEvents extends JsonCollectionEntity implements Events { List events = new ArrayList<>(); long currentTime = System.currentTimeMillis(); for (Event event : this) - if (event.startDate().getTime() > currentTime) + if (currentTime < event.startDate().getTime()) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -156,4 +161,11 @@ public class JsonEvents extends JsonCollectionEntity implements Events { ); } + private Date nextDate(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.add(Calendar.DATE, 1); + return c.getTime(); + } + } diff --git a/src/main/java/org/hedgecode/snooker/json/JsonIdEntity.java b/src/main/java/org/hedgecode/snooker/json/JsonIdEntity.java index 6b6c213..25207b4 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonIdEntity.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonIdEntity.java @@ -16,6 +16,8 @@ package org.hedgecode.snooker.json; +import java.io.Serializable; + import org.hedgecode.snooker.api.IdEntity; /** @@ -23,7 +25,7 @@ import org.hedgecode.snooker.api.IdEntity; * * @author Dmitry Samoshin aka gotty */ -public abstract class JsonIdEntity implements IdEntity, JsonSerializable { +public abstract class JsonIdEntity implements IdEntity, Serializable { @Override public boolean equals(Object obj) { diff --git a/src/main/java/org/hedgecode/snooker/json/JsonMatch.java b/src/main/java/org/hedgecode/snooker/json/JsonMatch.java index 2731565..22248dd 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonMatch.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonMatch.java @@ -103,6 +103,9 @@ public class JsonMatch extends JsonIdEntity implements Match { @SerializedName("ExtendedNote") private String extendedNote; + protected JsonMatch() { + } + @Override public int matchId() { return matchId; @@ -255,27 +258,37 @@ public class JsonMatch extends JsonIdEntity implements Match { @Override public Date initDate() { - return initDate; + return initDate == null + ? null + : new Date(initDate.getTime()); } @Override public Date modDate() { - return modDate; + return modDate == null + ? null + : new Date(modDate.getTime()); } @Override public Date startDate() { - return startDate; + return startDate == null + ? null + : new Date(startDate.getTime()); } @Override public Date endDate() { - return endDate; + return endDate == null + ? null + : new Date(endDate.getTime()); } @Override public Date scheduledDate() { - return scheduledDate; + return scheduledDate == null + ? null + : new Date(scheduledDate.getTime()); } @Override diff --git a/src/main/java/org/hedgecode/snooker/json/JsonMatches.java b/src/main/java/org/hedgecode/snooker/json/JsonMatches.java index 0d4dd02..83a0285 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonMatches.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonMatches.java @@ -30,6 +30,8 @@ import org.hedgecode.snooker.compare.MatchComparators; */ public class JsonMatches extends JsonCollectionEntity implements Matches { + private static final JsonMatches EMPTY = new JsonMatches(new Match[0]); + protected JsonMatches(Match[] entities) { super(entities); } @@ -44,7 +46,7 @@ public class JsonMatches extends JsonCollectionEntity implements Matches for (Match match : this) if (match.eventId() == eventId) matches.add(match); - return matches.isEmpty() ? null : new JsonMatches(matches); + return matches.isEmpty() ? EMPTY : new JsonMatches(matches); } @Override @@ -53,7 +55,7 @@ public class JsonMatches extends JsonCollectionEntity implements Matches for (Match match : this) if (match.eventId() == eventId && match.round() == round) matches.add(match); - return matches.isEmpty() ? null : new JsonMatches(matches); + return matches.isEmpty() ? EMPTY : new JsonMatches(matches); } @Override @@ -62,7 +64,7 @@ public class JsonMatches extends JsonCollectionEntity implements Matches for (Match match : this) if (match.player1Id() == playerId || match.player2Id() == playerId) matches.add(match); - return matches.isEmpty() ? null : new JsonMatches(matches); + return matches.isEmpty() ? EMPTY : new JsonMatches(matches); } @Override @@ -71,7 +73,7 @@ public class JsonMatches extends JsonCollectionEntity implements Matches for (Match match : this) if (match.endDate() != null) matches.add(match); - return matches.isEmpty() ? null : new JsonMatches(matches); + return matches.isEmpty() ? EMPTY : new JsonMatches(matches); } @Override @@ -80,7 +82,7 @@ public class JsonMatches extends JsonCollectionEntity implements Matches for (Match match : this) if (match.startDate() != null && match.endDate() == null) matches.add(match); - return matches.isEmpty() ? null : new JsonMatches(matches); + return matches.isEmpty() ? EMPTY : new JsonMatches(matches); } @Override @@ -89,7 +91,7 @@ public class JsonMatches extends JsonCollectionEntity implements Matches for (Match match : this) if (match.startDate() == null) matches.add(match); - return matches.isEmpty() ? null : new JsonMatches(matches); + return matches.isEmpty() ? EMPTY : new JsonMatches(matches); } @Override diff --git a/src/main/java/org/hedgecode/snooker/json/JsonOngoingMatch.java b/src/main/java/org/hedgecode/snooker/json/JsonOngoingMatch.java index 6e5cb1d..6fa9efe 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonOngoingMatch.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonOngoingMatch.java @@ -25,4 +25,7 @@ import org.hedgecode.snooker.api.OngoingMatch; */ public class JsonOngoingMatch extends JsonMatch implements OngoingMatch { + protected JsonOngoingMatch() { + } + } diff --git a/src/main/java/org/hedgecode/snooker/json/JsonPlayer.java b/src/main/java/org/hedgecode/snooker/json/JsonPlayer.java index 6db13d1..04ac5da 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonPlayer.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonPlayer.java @@ -70,6 +70,9 @@ public class JsonPlayer extends JsonIdEntity implements Player { @SerializedName("Info") private String info; + protected JsonPlayer() { + } + @Override public int playerId() { return playerId; @@ -132,7 +135,9 @@ public class JsonPlayer extends JsonIdEntity implements Player { @Override public Date born() { - return born; + return born == null + ? null + : new Date(born.getTime()); } @Override diff --git a/src/main/java/org/hedgecode/snooker/json/JsonPlayers.java b/src/main/java/org/hedgecode/snooker/json/JsonPlayers.java index 26c68e2..2ba59d3 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonPlayers.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonPlayers.java @@ -30,6 +30,8 @@ import org.hedgecode.snooker.compare.PlayerComparators; */ public class JsonPlayers extends JsonCollectionEntity implements Players { + private static final JsonPlayers EMPTY = new JsonPlayers(new Player[0]); + protected JsonPlayers(Player[] entities) { super(entities); } @@ -44,7 +46,7 @@ public class JsonPlayers extends JsonCollectionEntity implements Players for (Player player : this) if (player.type() == type) players.add(player); - return players.isEmpty() ? null : new JsonPlayers(players); + return players.isEmpty() ? EMPTY : new JsonPlayers(players); } @Override @@ -53,7 +55,7 @@ public class JsonPlayers extends JsonCollectionEntity implements Players for (Player player : this) if (player.shortName().contains(name)) players.add(player); - return players.isEmpty() ? null : new JsonPlayers(players); + return players.isEmpty() ? EMPTY : new JsonPlayers(players); } @Override @@ -62,7 +64,7 @@ public class JsonPlayers extends JsonCollectionEntity implements Players for (Player player : this) if (player.nationality().equals(nationality)) players.add(player); - return players.isEmpty() ? null : new JsonPlayers(players); + return players.isEmpty() ? EMPTY : new JsonPlayers(players); } @Override @@ -71,7 +73,7 @@ public class JsonPlayers extends JsonCollectionEntity implements Players for (Player player : this) if (player.nationality().equals(sex)) players.add(player); - return players.isEmpty() ? null : new JsonPlayers(players); + return players.isEmpty() ? EMPTY : new JsonPlayers(players); } @Override diff --git a/src/main/java/org/hedgecode/snooker/json/JsonRanking.java b/src/main/java/org/hedgecode/snooker/json/JsonRanking.java index 02e08f5..2648591 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonRanking.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonRanking.java @@ -50,6 +50,9 @@ public class JsonRanking extends JsonIdEntity implements Ranking { @Expose private RankingType rankingType; + protected JsonRanking() { + } + @Override public int rankingId() { return rankingId; diff --git a/src/main/java/org/hedgecode/snooker/json/JsonRankings.java b/src/main/java/org/hedgecode/snooker/json/JsonRankings.java index 75a3358..ac0a1ae 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonRankings.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonRankings.java @@ -30,6 +30,8 @@ import org.hedgecode.snooker.compare.RankingComparators; */ public class JsonRankings extends JsonCollectionEntity implements Rankings { + private static final JsonRankings EMPTY = new JsonRankings(new Ranking[0]); + protected JsonRankings(Ranking[] entities) { super(entities); } @@ -52,7 +54,7 @@ public class JsonRankings extends JsonCollectionEntity implements Ranki for (Ranking ranking : this) if (ranking.sum() >= minSum && ranking.sum() <= maxSum) rankings.add(ranking); - return rankings.isEmpty() ? null : new JsonRankings(rankings); + return rankings.isEmpty() ? EMPTY : new JsonRankings(rankings); } @Override @@ -68,4 +70,5 @@ public class JsonRankings extends JsonCollectionEntity implements Ranki RankingComparators.SUM.comparator() ); } + } diff --git a/src/main/java/org/hedgecode/snooker/json/JsonSerializable.java b/src/main/java/org/hedgecode/snooker/json/JsonSerializable.java deleted file mode 100644 index 8d7db08..0000000 --- a/src/main/java/org/hedgecode/snooker/json/JsonSerializable.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.io.Serializable; - -/** - * Dummy Interface to Serializable Objects. - * - * @author Dmitry Samoshin aka gotty - */ -public interface JsonSerializable extends Serializable { - -} diff --git a/src/main/java/org/hedgecode/snooker/request/AbstractRequester.java b/src/main/java/org/hedgecode/snooker/request/AbstractRequester.java index a127bb5..db8e5eb 100644 --- a/src/main/java/org/hedgecode/snooker/request/AbstractRequester.java +++ b/src/main/java/org/hedgecode/snooker/request/AbstractRequester.java @@ -21,6 +21,8 @@ import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; /** * Abstract Data Requester from the portal api.snooker.org. @@ -30,6 +32,7 @@ import java.net.URLConnection; public abstract class AbstractRequester implements Requester { protected static final String API_SNOOKER_URL = "http://api.snooker.org/"; + protected static final Charset API_SNOOKER_CHARSET = StandardCharsets.UTF_8; protected abstract String getRequestUrl(int id) throws RequestException; @@ -56,7 +59,7 @@ public abstract class AbstractRequester implements Requester { URLConnection urlConnection = url.openConnection(); BufferedReader br = new BufferedReader( new InputStreamReader( - urlConnection.getInputStream() + urlConnection.getInputStream(), API_SNOOKER_CHARSET ) ); String inputLine; diff --git a/src/main/java/org/hedgecode/snooker/request/RequestParams.java b/src/main/java/org/hedgecode/snooker/request/RequestParams.java index a11da9b..cb325dd 100644 --- a/src/main/java/org/hedgecode/snooker/request/RequestParams.java +++ b/src/main/java/org/hedgecode/snooker/request/RequestParams.java @@ -52,6 +52,7 @@ public class RequestParams { case SEASON_EVENTS: this.season = season; break; + default: } } -- 2.10.0