package app.utils; import app.data.entity.Match; import app.data.entity.Matchday; import app.data.entity.Player; import app.data.entity.Season; import org.springframework.lang.NonNull; public class EntityStringUtils { private EntityStringUtils() { } public static String getPlayerString(Player player) { return String.format("%s (%s)", player.getName(), player.getNickname()); } public static String getPlayerStringForURL(Player player) { return player.getNickname().toLowerCase(); } public static String getSeasonString(@NonNull Season season) { String string = season.getYearStart().toString(); if (!season.getYearEnd().equals(season.getYearStart())) { string += "-" + season.getYearEnd().toString(); } return string; } public static String getObjectString(Object object) { if (object instanceof Player) return getPlayerString((Player) object); if (object instanceof Season) return getSeasonString((Season) object); if (object instanceof Matchday) return getMatchdayString((Matchday) object); if (object instanceof Match) return getMatchString((Match) object); throw new UnsupportedOperationException(String.format("Cannot get Object String for Type %s!", object.getClass().getSimpleName())); } public static String getObjectStringForURL(Object object) { if (object instanceof Player) return getPlayerStringForURL((Player) object); if (object instanceof Season) return getSeasonStringForURL((Season) object); if (object instanceof Matchday) return getMatchdayStringForURL((Matchday) object); if (object instanceof Match) return getMatchStringForURL((Match) object); throw new UnsupportedOperationException(String.format("Cannot get Object String for URL for Type %s!", object.getClass().getSimpleName())); } public static String getSeasonStringForURL(Season season) { return getSeasonString(season); } public static String getMatchdayString(Matchday matchday) { return matchday.getNumber().toString(); } public static String getMatchdayStringForURL(Matchday matchday) { return matchday.getNumber().toString(); } public static String getMatchString(Match match) { return String.format("%s vs. %s", match.getPlayer1().getNickname(), match.getPlayer2().getNickname()); } public static String getMatchStringForURL(Match match) { return String.format("%s-vs-%s", match.getPlayer1().getNickname().toLowerCase(), match.getPlayer2().getNickname().toLowerCase()); } }