diff --git a/orianna/src/main/java/com/merakianalytics/orianna/Orianna.java b/orianna/src/main/java/com/merakianalytics/orianna/Orianna.java index e9cc07ef9..d155ad4ef 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/Orianna.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/Orianna.java @@ -55,6 +55,7 @@ import com.merakianalytics.orianna.types.core.league.League; import com.merakianalytics.orianna.types.core.league.LeaguePositions; import com.merakianalytics.orianna.types.core.league.Leagues; +import com.merakianalytics.orianna.types.core.league.PositionalQueues; import com.merakianalytics.orianna.types.core.match.Match; import com.merakianalytics.orianna.types.core.match.MatchHistories; import com.merakianalytics.orianna.types.core.match.MatchHistory; @@ -582,6 +583,18 @@ public static Versions getVersions() { return Versions.get(); } + public static League.SelectBuilder.SubBuilder grandmasterLeagueInQueue(final Queue queue) { + return League.grandmasterInQueue(queue); + } + + public static Leagues.SelectBuilder.SubBuilder grandmasterLeaguesInQueues(final Iterable queues) { + return Leagues.grandmasterInQueues(queues); + } + + public static Leagues.SelectBuilder.SubBuilder grandmasterLeaguesInQueues(final Queue... queues) { + return Leagues.grandmasterInQueues(queues); + } + public static Item.Builder itemNamed(final String name) { return Item.named(name); } @@ -802,6 +815,30 @@ public static Match.Builder matchWithId(final long id) { return Match.withId(id); } + public static PositionalQueues.Builder positionalQueuesWithPlatform(final Platform platform) { + return PositionalQueues.withPlatform(platform); + } + + public static PositionalQueues.ManyBuilder positionalQueuesWithPlatforms(final Iterable platforms) { + return PositionalQueues.withPlatforms(platforms); + } + + public static PositionalQueues.ManyBuilder positionalQueuesWithPlatforms(final Platform... platforms) { + return PositionalQueues.withPlatforms(platforms); + } + + public static PositionalQueues.Builder positionalQueuesWithRegion(final Region region) { + return PositionalQueues.withRegion(region); + } + + public static PositionalQueues.ManyBuilder positionalQueuesWithRegions(final Iterable regions) { + return PositionalQueues.withRegions(regions); + } + + public static PositionalQueues.ManyBuilder positionalQueuesWithRegions(final Region... regions) { + return PositionalQueues.withRegions(regions); + } + public static ProfileIcons.Builder profileIconsWithLocale(final String locale) { return ProfileIcons.withLocale(locale); } @@ -1148,7 +1185,23 @@ public static Versions.Builder versionsWithPlatform(final Platform platform) { return Versions.withPlatform(platform); } + public static Versions.ManyBuilder versionsWithPlatforms(final Iterable platforms) { + return Versions.withPlatforms(platforms); + } + + public static Versions.ManyBuilder versionsWithPlatforms(final Platform... platforms) { + return Versions.withPlatforms(platforms); + } + public static Versions.Builder versionsWithRegion(final Region region) { return Versions.withRegion(region); } + + public static Versions.ManyBuilder versionsWithRegions(final Iterable regions) { + return Versions.withRegions(regions); + } + + public static Versions.ManyBuilder versionsWithRegions(final Region... regions) { + return Versions.withRegions(regions); + } } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/GhostObjectSource.java b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/GhostObjectSource.java index 1a4e14b96..e7ea77ae1 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/GhostObjectSource.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/GhostObjectSource.java @@ -25,6 +25,7 @@ import com.merakianalytics.orianna.types.core.championmastery.ChampionMasteryScore; import com.merakianalytics.orianna.types.core.league.League; import com.merakianalytics.orianna.types.core.league.LeaguePositions; +import com.merakianalytics.orianna.types.core.league.PositionalQueues; import com.merakianalytics.orianna.types.core.match.Match; import com.merakianalytics.orianna.types.core.match.MatchHistory; import com.merakianalytics.orianna.types.core.match.Timeline; @@ -58,7 +59,7 @@ import com.merakianalytics.orianna.types.core.thirdpartycode.VerificationString; public class GhostObjectSource extends AbstractDataSource { - private static final Set UNIQUE_TIERS = ImmutableSet.of(Tier.CHALLENGER, Tier.MASTER); + private static final Set UNIQUE_TIERS = ImmutableSet.of(Tier.CHALLENGER, Tier.MASTER, Tier.GRANDMASTER); private static String getCurrentVersion(final Platform platform, final PipelineContext context) { final com.merakianalytics.orianna.types.dto.staticdata.Realm realm = @@ -284,13 +285,13 @@ public League getLeague(final java.util.Map query, final Pipelin @Get(LeaguePositions.class) public LeaguePositions getLeaguePositions(final java.util.Map query, final PipelineContext context) { final Platform platform = (Platform)query.get("platform"); - final Number summonerId = (Number)query.get("summonerId"); + final String summonerId = (String)query.get("summonerId"); Utilities.checkNotNull(platform, "platform", summonerId, "summonerId"); final com.merakianalytics.orianna.types.data.league.LeaguePositions data = new com.merakianalytics.orianna.types.data.league.LeaguePositions(); data.setPlatform(platform.getTag()); - data.setSummonerId(summonerId.longValue()); + data.setSummonerId(summonerId); return new LeaguePositions(data); } @@ -630,10 +631,10 @@ public void remove() { @GetMany(LeaguePositions.class) public CloseableIterator getManyLeaguePositions(final java.util.Map query, final PipelineContext context) { final Platform platform = (Platform)query.get("platform"); - final Iterable summonerIds = (Iterable)query.get("summonerIds"); + final Iterable summonerIds = (Iterable)query.get("summonerIds"); Utilities.checkNotNull(platform, "platform", summonerIds, "summonerIds"); - final Iterator iterator = summonerIds.iterator(); + final Iterator iterator = summonerIds.iterator(); return CloseableIterators.from(new Iterator() { @Override public boolean hasNext() { @@ -645,7 +646,7 @@ public LeaguePositions next() { final com.merakianalytics.orianna.types.data.league.LeaguePositions data = new com.merakianalytics.orianna.types.data.league.LeaguePositions(); data.setPlatform(platform.getTag()); - data.setSummonerId(iterator.next().longValue()); + data.setSummonerId(iterator.next()); return new LeaguePositions(data); } @@ -858,6 +859,34 @@ public void remove() { }); } + @SuppressWarnings("unchecked") + @GetMany(PositionalQueues.class) + public CloseableIterator getManyPositionalQueues(final java.util.Map query, final PipelineContext context) { + final Iterable platforms = (Iterable)query.get("platforms"); + Utilities.checkNotNull(platforms, "platforms"); + + final Iterator iterator = platforms.iterator(); + return CloseableIterators.from(new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public PositionalQueues next() { + final com.merakianalytics.orianna.types.data.league.PositionalQueues data = + new com.merakianalytics.orianna.types.data.league.PositionalQueues(); + data.setPlatform(iterator.next().getTag()); + return new PositionalQueues(data); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }); + } + @SuppressWarnings("unchecked") @GetMany(ProfileIcon.class) public CloseableIterator getManyProfileIcon(final java.util.Map query, final PipelineContext context) { @@ -1237,6 +1266,34 @@ public void remove() { }); } + @SuppressWarnings("unchecked") + @GetMany(Versions.class) + public CloseableIterator getManyVersions(final java.util.Map query, final PipelineContext context) { + final Iterable platforms = (Iterable)query.get("platforms"); + Utilities.checkNotNull(platforms, "platforms"); + + final Iterator iterator = platforms.iterator(); + return CloseableIterators.from(new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public Versions next() { + final com.merakianalytics.orianna.types.data.staticdata.Versions data = + new com.merakianalytics.orianna.types.data.staticdata.Versions(); + data.setPlatform(iterator.next().getTag()); + return new Versions(data); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }); + } + @Get(Map.class) public Map getMap(final java.util.Map query, final PipelineContext context) { final Platform platform = (Platform)query.get("platform"); @@ -1374,6 +1431,16 @@ public Patches getPatches(final java.util.Map query, final Pipel return new Patches(data); } + @Get(PositionalQueues.class) + public PositionalQueues getPositionalQueues(final java.util.Map query, final PipelineContext context) { + final Platform platform = (Platform)query.get("platform"); + Utilities.checkNotNull(platform, "platform"); + + final com.merakianalytics.orianna.types.data.league.PositionalQueues data = new com.merakianalytics.orianna.types.data.league.PositionalQueues(); + data.setPlatform(platform.getTag()); + return new PositionalQueues(data); + } + @Get(ProfileIcon.class) public ProfileIcon getProfileIcon(final java.util.Map query, final PipelineContext context) { final Platform platform = (Platform)query.get("platform"); diff --git a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/InMemoryCache.java b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/InMemoryCache.java index 2a717fcf9..f00ccbe79 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/InMemoryCache.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/InMemoryCache.java @@ -41,6 +41,7 @@ import com.merakianalytics.orianna.types.core.championmastery.ChampionMasteryScore; import com.merakianalytics.orianna.types.core.league.League; import com.merakianalytics.orianna.types.core.league.LeaguePositions; +import com.merakianalytics.orianna.types.core.league.PositionalQueues; import com.merakianalytics.orianna.types.core.match.Match; import com.merakianalytics.orianna.types.core.match.Timeline; import com.merakianalytics.orianna.types.core.match.TournamentMatches; @@ -91,6 +92,7 @@ public static class Configuration { .put(Languages.class.getCanonicalName(), ExpirationPeriod.create(DEFAULT_EXPIRATION_PERIOD_MAX, DEFAULT_EXPIRATION_PERIOD_UNIT_MAX)) .put(League.class.getCanonicalName(), ExpirationPeriod.create(15L, TimeUnit.MINUTES)) .put(LeaguePositions.class.getCanonicalName(), ExpirationPeriod.create(15L, TimeUnit.MINUTES)) + .put(PositionalQueues.class.getCanonicalName(), ExpirationPeriod.create(6L, TimeUnit.HOURS)) .put(Map.class.getCanonicalName(), ExpirationPeriod.create(DEFAULT_EXPIRATION_PERIOD_MAX, DEFAULT_EXPIRATION_PERIOD_UNIT_MAX)) .put(Maps.class.getCanonicalName(), ExpirationPeriod.create(DEFAULT_EXPIRATION_PERIOD_MAX, DEFAULT_EXPIRATION_PERIOD_UNIT_MAX)) .put(Mastery.class.getCanonicalName(), ExpirationPeriod.create(DEFAULT_EXPIRATION_PERIOD_MAX, DEFAULT_EXPIRATION_PERIOD_UNIT_MAX)) @@ -664,6 +666,35 @@ public void remove() { }); } + @GetMany(PositionalQueues.class) + public CloseableIterator getManyPositionalQueues(final java.util.Map query, final PipelineContext context) { + final List keys = Lists.newArrayList(UniqueKeys.forManyPositionalQueuesQuery(query)); + for(final Integer key : keys) { + if(!cache.containsKey(key)) { + return null; + } + } + + final Iterator iterator = keys.iterator(); + return CloseableIterators.from(new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public PositionalQueues next() { + final int key = iterator.next(); + return (PositionalQueues)cache.get(key); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }); + } + @GetMany(ProfileIcon.class) public CloseableIterator getManyProfileIcon(final java.util.Map query, final PipelineContext context) { final List keys = Lists.newArrayList(UniqueKeys.forManyProfileIconQuery(query)); @@ -954,6 +985,35 @@ public void remove() { }); } + @GetMany(Versions.class) + public CloseableIterator getManyVersions(final java.util.Map query, final PipelineContext context) { + final List keys = Lists.newArrayList(UniqueKeys.forManyVersionsQuery(query)); + for(final Integer key : keys) { + if(!cache.containsKey(key)) { + return null; + } + } + + final Iterator iterator = keys.iterator(); + return CloseableIterators.from(new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public Versions next() { + final int key = iterator.next(); + return (Versions)cache.get(key); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }); + } + @Get(Map.class) public Map getMap(final java.util.Map query, final PipelineContext context) { final int key = UniqueKeys.forMapQuery(query); @@ -996,6 +1056,12 @@ public Patches getPatches(final java.util.Map query, final Pipel return (Patches)cache.get(key); } + @Get(PositionalQueues.class) + public PositionalQueues getPositionalQueues(final java.util.Map query, final PipelineContext context) { + final int key = UniqueKeys.forPositionalQueuesQuery(query); + return (PositionalQueues)cache.get(key); + } + @Get(ProfileIcon.class) public ProfileIcon getProfileIcon(final java.util.Map query, final PipelineContext context) { final int key = UniqueKeys.forProfileIconQuery(query); @@ -1376,6 +1442,13 @@ public void putManyPatch(final Iterable patches, final PipelineContext co } } + @PutMany(PositionalQueues.class) + public void putManyPositionalQueues(final Iterable queues, final PipelineContext context) { + for(final PositionalQueues queue : queues) { + putPositionalQueues(queue, context); + } + } + @PutMany(ProfileIcon.class) public void putManyProfileIcon(final Iterable icons, final PipelineContext context) { for(final ProfileIcon icon : icons) { @@ -1446,6 +1519,13 @@ public void putManyVerificationString(final Iterable strings } } + @PutMany(Versions.class) + public void putManyVersions(final Iterable versions, final PipelineContext context) { + for(final Versions version : versions) { + putVersions(version, context); + } + } + @Put(Map.class) public void putMap(final Map map, final PipelineContext context) { final int[] keys = UniqueKeys.forMap(map); @@ -1567,6 +1647,12 @@ public void call() { } } + @Put(PositionalQueues.class) + public void putPositionalQueues(final PositionalQueues queues, final PipelineContext context) { + final int key = UniqueKeys.forPositionalQueues(queues); + cache.put(key, queues); + } + @Put(ProfileIcon.class) public void putProfileIcon(final ProfileIcon profileIcon, final PipelineContext context) { final int key = UniqueKeys.forProfileIcon(profileIcon); diff --git a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/riotapi/LeagueAPI.java b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/riotapi/LeagueAPI.java index 671b5fd28..0720995c7 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/riotapi/LeagueAPI.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/riotapi/LeagueAPI.java @@ -19,11 +19,14 @@ import com.merakianalytics.orianna.types.common.Tier; import com.merakianalytics.orianna.types.dto.league.LeagueList; import com.merakianalytics.orianna.types.dto.league.LeaguePosition; +import com.merakianalytics.orianna.types.dto.league.PositionalQueuesList; import com.merakianalytics.orianna.types.dto.league.SummonerPositions; public class LeagueAPI extends RiotAPIService { - private static final Map LEAGUE_LIST_ENDPOINTS = ImmutableMap.of(Tier.CHALLENGER, "lol/league/v3/challengerleagues/by-queue/", - Tier.MASTER, "lol/league/v3/masterleagues/by-queue/"); + // TODO: Add /lol/league/v4/positions/{positionalQueue}/{tier}/{division}/{position}/{page} + + private static final Map LEAGUE_LIST_ENDPOINTS = ImmutableMap.of(Tier.CHALLENGER, "lol/league/v4/challengerleagues/by-queue/", + Tier.MASTER, "lol/league/v4/masterleagues/by-queue/", Tier.GRANDMASTER, "lol/league/v4/grandmasterleagues/by-queue/"); public LeagueAPI(final Configuration config, final HTTPClient client, final Map applicationRateLimiters, final Map applicationRateLimiterLocks) { @@ -61,13 +64,16 @@ public LeagueList getLeagueList(final Map query, final PipelineC final String endpoint = LEAGUE_LIST_ENDPOINTS.get(tier) + queue; data = get(LeagueList.class, endpoint, platform, LEAGUE_LIST_ENDPOINTS.get(tier) + "/queue"); } else { - final String endpoint = "lol/league/v3/leagues/" + leagueId; - data = get(LeagueList.class, endpoint, platform, "lol/league/v3/leagues/leagueId"); + final String endpoint = "lol/league/v4/leagues/" + leagueId; + data = get(LeagueList.class, endpoint, platform, "lol/league/v4/leagues/leagueId"); } if(data == null) { return null; } + if(data.getQueue() == null && queue != null) { + data.setQueue(queue.toString()); + } data.setPlatform(platform.getTag()); return data; } @@ -112,11 +118,49 @@ public LeagueList next() { final String endpoint = LEAGUE_LIST_ENDPOINTS.get(tier) + queue; data = get(LeagueList.class, endpoint, platform, LEAGUE_LIST_ENDPOINTS.get(tier) + "/queue"); + + if(data.getQueue() == null && queue != null) { + data.setQueue(queue.toString()); + } } else { final String leagueId = (String)iterator.next(); - final String endpoint = "lol/league/v3/leagues/" + leagueId; - data = get(LeagueList.class, endpoint, platform, "lol/league/v3/leagues/leagueId"); + final String endpoint = "lol/league/v4/leagues/" + leagueId; + data = get(LeagueList.class, endpoint, platform, "lol/league/v4/leagues/leagueId"); + } + if(data == null) { + return null; } + + data.setPlatform(platform.getTag()); + return data; + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }); + } + + @SuppressWarnings("unchecked") + @GetMany(PositionalQueuesList.class) + public CloseableIterator getManyPositionalQueuesList(final Map query, final PipelineContext context) { + final Iterable platforms = (Iterable)query.get("platforms"); + Utilities.checkNotNull(platforms, "platforms"); + + final Iterator iterator = platforms.iterator(); + return CloseableIterators.from(new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public PositionalQueuesList next() { + final Platform platform = iterator.next(); + + final String endpoint = "lol/league/v4/positional-rank-queues"; + final PositionalQueuesList data = get(PositionalQueuesList.class, endpoint, platform, "lol/league/v4/positional-rank-queues"); if(data == null) { return null; } @@ -136,10 +180,10 @@ public void remove() { @GetMany(SummonerPositions.class) public CloseableIterator getManySummonerPositions(final Map query, final PipelineContext context) { final Platform platform = (Platform)query.get("platform"); - final Iterable summonerIds = (Iterable)query.get("summonerIds"); + final Iterable summonerIds = (Iterable)query.get("summonerIds"); Utilities.checkNotNull(platform, "platform", summonerIds, "summonerIds"); - final Iterator iterator = summonerIds.iterator(); + final Iterator iterator = summonerIds.iterator(); return CloseableIterators.from(new Iterator() { @Override public boolean hasNext() { @@ -148,15 +192,15 @@ public boolean hasNext() { @Override public SummonerPositions next() { - final Number summonerId = iterator.next(); + final String summonerId = iterator.next(); - final String endpoint = "lol/league/v3/positions/by-summoner/" + summonerId; - final SummonerPositions data = get(SummonerPositions.class, endpoint, platform, "lol/league/v3/positions/by-summoner/summonerId"); + final String endpoint = "lol/league/v4/positions/by-summoner/" + summonerId; + final SummonerPositions data = get(SummonerPositions.class, endpoint, platform, "lol/league/v4/positions/by-summoner/summonerId"); if(data == null) { return null; } - data.setSummonerId(summonerId.longValue()); + data.setSummonerId(summonerId); data.setPlatform(platform.getTag()); for(final LeaguePosition position : data) { position.setPlatform(platform.getTag()); @@ -171,19 +215,34 @@ public void remove() { }); } + @Get(PositionalQueuesList.class) + public PositionalQueuesList getPositionalQueuesList(final Map query, final PipelineContext context) { + final Platform platform = (Platform)query.get("platform"); + Utilities.checkNotNull(platform, "platform"); + + final String endpoint = "lol/league/v4/positional-rank-queues"; + final PositionalQueuesList data = get(PositionalQueuesList.class, endpoint, platform, "lol/league/v4/positional-rank-queues"); + if(data == null) { + return null; + } + + data.setPlatform(platform.getTag()); + return data; + } + @Get(SummonerPositions.class) public SummonerPositions getSummonerPositions(final Map query, final PipelineContext context) { final Platform platform = (Platform)query.get("platform"); - final Number summonerId = (Number)query.get("summonerId"); + final String summonerId = (String)query.get("summonerId"); Utilities.checkNotNull(platform, "platform", summonerId, "summonerId"); - final String endpoint = "lol/league/v3/positions/by-summoner/" + summonerId; - final SummonerPositions data = get(SummonerPositions.class, endpoint, platform, "lol/league/v3/positions/by-summoner/summonerId"); + final String endpoint = "lol/league/v4/positions/by-summoner/" + summonerId; + final SummonerPositions data = get(SummonerPositions.class, endpoint, platform, "lol/league/v4/positions/by-summoner/summonerId"); if(data == null) { return null; } - data.setSummonerId(summonerId.longValue()); + data.setSummonerId(summonerId); data.setPlatform(platform.getTag()); for(final LeaguePosition position : data) { position.setPlatform(platform.getTag()); diff --git a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/transformers/dtodata/LeagueTransformer.java b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/transformers/dtodata/LeagueTransformer.java index e568c9027..7b3e15ab0 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/transformers/dtodata/LeagueTransformer.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/transformers/dtodata/LeagueTransformer.java @@ -10,10 +10,12 @@ import com.merakianalytics.orianna.types.data.league.LeagueEntry; import com.merakianalytics.orianna.types.data.league.LeaguePosition; import com.merakianalytics.orianna.types.data.league.LeaguePositions; +import com.merakianalytics.orianna.types.data.league.PositionalQueues; import com.merakianalytics.orianna.types.data.league.Series; import com.merakianalytics.orianna.types.dto.league.LeagueItem; import com.merakianalytics.orianna.types.dto.league.LeagueList; import com.merakianalytics.orianna.types.dto.league.MiniSeries; +import com.merakianalytics.orianna.types.dto.league.PositionalQueuesList; import com.merakianalytics.orianna.types.dto.league.SummonerPositions; public class LeagueTransformer extends AbstractDataTransformer { @@ -33,11 +35,12 @@ public LeaguePosition transform(final com.merakianalytics.orianna.types.dto.leag position.setPromos(transform(item.getMiniSeries(), context)); } position.setQueue(item.getQueueType()); - position.setSummonerId(Long.parseLong(item.getPlayerOrTeamId())); - position.setSummonerName(item.getPlayerOrTeamName()); + position.setSummonerId(item.getSummonerId()); + position.setSummonerName(item.getSummonerName()); position.setTier(item.getTier()); position.setVeteran(item.isVeteran()); position.setWins(item.getWins()); + position.setPosition(item.getPosition()); return position; } @@ -69,8 +72,8 @@ public LeagueItem transform(final LeagueEntry item, final PipelineContext contex if(item.getPromos() != null) { entry.setMiniSeries(transform(item.getPromos(), context)); } - entry.setPlayerOrTeamId(Long.toString(item.getSummonerId())); - entry.setPlayerOrTeamName(item.getSummonerName()); + entry.setSummonerId(item.getSummonerId()); + entry.setSummonerName(item.getSummonerName()); entry.setVeteran(item.isVeteran()); entry.setWins(item.getWins()); return entry; @@ -89,8 +92,8 @@ public LeagueEntry transform(final LeagueItem item, final PipelineContext contex if(item.getMiniSeries() != null) { entry.setPromos(transform(item.getMiniSeries(), context)); } - entry.setSummonerId(Long.parseLong(item.getPlayerOrTeamId())); - entry.setSummonerName(item.getPlayerOrTeamName()); + entry.setSummonerId(item.getSummonerId()); + entry.setSummonerName(item.getSummonerName()); entry.setVeteran(item.isVeteran()); entry.setWins(item.getWins()); return entry; @@ -128,11 +131,12 @@ public com.merakianalytics.orianna.types.dto.league.LeaguePosition transform(fin position.setMiniSeries(transform(item.getPromos(), context)); } position.setQueueType(item.getQueue().toString()); - position.setPlayerOrTeamId(Long.toString(item.getSummonerId())); - position.setPlayerOrTeamName(item.getSummonerName()); + position.setSummonerId(item.getSummonerId()); + position.setSummonerName(item.getSummonerName()); position.setTier(item.getTier().toString()); position.setVeteran(item.isVeteran()); position.setWins(item.getWins()); + position.setPosition(item.getPosition()); return position; } @@ -157,6 +161,20 @@ public Series transform(final MiniSeries item, final PipelineContext context) { return series; } + @Transform(from = PositionalQueues.class, to = PositionalQueuesList.class) + public PositionalQueuesList transform(final PositionalQueues item, final PipelineContext context) { + final PositionalQueuesList list = new PositionalQueuesList(item.size()); + list.addAll(item); + return list; + } + + @Transform(from = PositionalQueuesList.class, to = PositionalQueues.class) + public PositionalQueues transform(final PositionalQueuesList item, final PipelineContext context) { + final PositionalQueues list = new PositionalQueues(item.size()); + list.addAll(item); + return list; + } + @Transform(from = Series.class, to = MiniSeries.class) public MiniSeries transform(final Series item, final PipelineContext context) { final MiniSeries series = new MiniSeries(); diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/UniqueKeys.java b/orianna/src/main/java/com/merakianalytics/orianna/types/UniqueKeys.java index 569f2a3d2..90acccaaf 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/UniqueKeys.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/UniqueKeys.java @@ -14,6 +14,7 @@ import com.merakianalytics.orianna.types.core.championmastery.ChampionMasteryScore; import com.merakianalytics.orianna.types.core.league.League; import com.merakianalytics.orianna.types.core.league.LeaguePositions; +import com.merakianalytics.orianna.types.core.league.PositionalQueues; import com.merakianalytics.orianna.types.core.match.Match; import com.merakianalytics.orianna.types.core.match.Timeline; import com.merakianalytics.orianna.types.core.match.TournamentMatches; @@ -46,6 +47,7 @@ import com.merakianalytics.orianna.types.core.thirdpartycode.VerificationString; import com.merakianalytics.orianna.types.dto.champion.ChampionInfo; import com.merakianalytics.orianna.types.dto.league.LeagueList; +import com.merakianalytics.orianna.types.dto.league.PositionalQueuesList; import com.merakianalytics.orianna.types.dto.league.SummonerPositions; import com.merakianalytics.orianna.types.dto.match.MatchTimeline; import com.merakianalytics.orianna.types.dto.spectator.CurrentGameInfo; @@ -62,7 +64,7 @@ import com.merakianalytics.orianna.types.dto.staticdata.SummonerSpellList; public abstract class UniqueKeys { - private static final Set UNIQUE_TIERS = ImmutableSet.of(Tier.CHALLENGER, Tier.MASTER); + private static final Set UNIQUE_TIERS = ImmutableSet.of(Tier.CHALLENGER, Tier.MASTER, Tier.GRANDMASTER); public static int[] forChampion(final Champion champion) { final com.merakianalytics.orianna.types.data.staticdata.Champion data = champion.getCoreData(); @@ -2325,6 +2327,81 @@ public void remove() { }; } + @SuppressWarnings("unchecked") + public static Iterator forManyPositionalQueuesDataQuery(final java.util.Map query) { + final Iterable platforms = (Iterable)query.get("platforms"); + + final Iterator iterator = platforms.iterator(); + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public Integer next() { + return Arrays.hashCode(new Object[] { + com.merakianalytics.orianna.types.data.league.PositionalQueues.class.getCanonicalName(), iterator.next().getTag() + }); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + + @SuppressWarnings("unchecked") + public static Iterator forManyPositionalQueuesListDtoQuery(final java.util.Map query) { + final Iterable platforms = (Iterable)query.get("platforms"); + + final Iterator iterator = platforms.iterator(); + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public Integer next() { + return Arrays.hashCode(new Object[] { + PositionalQueuesList.class.getCanonicalName(), iterator.next().getTag() + }); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + + @SuppressWarnings("unchecked") + public static Iterator forManyPositionalQueuesQuery(final java.util.Map query) { + final Iterable platforms = (Iterable)query.get("platforms"); + + final Iterator iterator = platforms.iterator(); + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public Integer next() { + return Arrays.hashCode(new Object[] { + PositionalQueues.class.getCanonicalName(), iterator.next().getTag() + }); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + @SuppressWarnings("unchecked") public static Iterator forManyProfileIconDataDtoQuery(final java.util.Map query) { final Iterable versions = (Iterable)query.get("versions"); @@ -3412,6 +3489,31 @@ public void remove() { }; } + @SuppressWarnings("unchecked") + public static Iterator forManyVersionsQuery(final java.util.Map query) { + final Iterable platforms = (Iterable)query.get("platforms"); + + final Iterator iterator = platforms.iterator(); + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public Integer next() { + return Arrays.hashCode(new Object[] { + Versions.class.getCanonicalName(), iterator.next().getTag() + }); + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + public static int[] forMap(final Map map) { final com.merakianalytics.orianna.types.data.staticdata.Map data = map.getCoreData(); if(data.getId() != 0 && data.getName() != null) { @@ -3788,6 +3890,43 @@ public static int forPatchQuery(final java.util.Map query) { }); } + public static int forPositionalQueues(final PositionalQueues queues) { + final com.merakianalytics.orianna.types.data.league.PositionalQueues data = queues.getCoreData(); + return Arrays.hashCode(new Object[] { + PositionalQueues.class.getCanonicalName(), data.getPlatform() + }); + } + + public static int forPositionalQueuesData(final com.merakianalytics.orianna.types.data.league.PositionalQueues queues) { + return Arrays.hashCode(new Object[] { + com.merakianalytics.orianna.types.data.league.PositionalQueues.class.getCanonicalName(), queues.getPlatform() + }); + } + + public static int forPositionalQueuesDataQuery(final java.util.Map query) { + return Arrays.hashCode(new Object[] { + com.merakianalytics.orianna.types.data.league.PositionalQueues.class.getCanonicalName(), ((Platform)query.get("platform")).getTag() + }); + } + + public static int forPositionalQueuesListDto(final PositionalQueuesList queues) { + return Arrays.hashCode(new Object[] { + PositionalQueuesList.class.getCanonicalName(), queues.getPlatform() + }); + } + + public static int forPositionalQueuesListDtoQuery(final java.util.Map query) { + return Arrays.hashCode(new Object[] { + PositionalQueuesList.class.getCanonicalName(), ((Platform)query.get("platform")).getTag() + }); + } + + public static int forPositionalQueuesQuery(final java.util.Map query) { + return Arrays.hashCode(new Object[] { + PositionalQueues.class.getCanonicalName(), ((Platform)query.get("platform")).getTag() + }); + } + public static int forProfileIcon(final ProfileIcon icon) { final com.merakianalytics.orianna.types.data.staticdata.ProfileIcon data = icon.getCoreData(); return Arrays.hashCode(new Object[] { diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/common/Position.java b/orianna/src/main/java/com/merakianalytics/orianna/types/common/Position.java new file mode 100644 index 000000000..85e874835 --- /dev/null +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/common/Position.java @@ -0,0 +1,10 @@ +package com.merakianalytics.orianna.types.common; + +public enum Position { + APEX, + BOTTOM, + JUNGLE, + MIDDLE, + TOP, + UTILITY; +} diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/common/Tier.java b/orianna/src/main/java/com/merakianalytics/orianna/types/common/Tier.java index 50fb499d8..c8730ccd2 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/common/Tier.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/common/Tier.java @@ -5,6 +5,7 @@ public enum Tier { CHALLENGER, DIAMOND, GOLD, + GRANDMASTER, MASTER, PLATINUM, SILVER, diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/League.java b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/League.java index 1ccde0031..ad7c10f24 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/League.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/League.java @@ -106,6 +106,10 @@ public static SelectBuilder.SubBuilder challengerInQueue(final Queue queue) { return new SelectBuilder(Tier.CHALLENGER).inQueue(queue); } + public static SelectBuilder.SubBuilder grandmasterInQueue(final Queue queue) { + return new SelectBuilder(Tier.GRANDMASTER).inQueue(queue); + } + public static SelectBuilder.SubBuilder masterInQueue(final Queue queue) { return new SelectBuilder(Tier.MASTER).inQueue(queue); } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeagueEntry.java b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeagueEntry.java index ade458e76..cb28c0a41 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeagueEntry.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeagueEntry.java @@ -24,7 +24,7 @@ public Series get() { private final Supplier summoner = Suppliers.memoize(new Supplier() { @Override public Summoner get() { - if(coreData.getSummonerId() == 0L) { + if(coreData.getSummonerId() == null) { return null; } final Summoner summoner = Summoner.withId(coreData.getSummonerId()).withPlatform(Platform.withTag(coreData.getPlatform())).get(); diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePosition.java b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePosition.java index 07d72bb09..f274abce8 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePosition.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePosition.java @@ -4,6 +4,7 @@ import com.google.common.base.Suppliers; import com.merakianalytics.orianna.types.common.Division; import com.merakianalytics.orianna.types.common.Platform; +import com.merakianalytics.orianna.types.common.Position; import com.merakianalytics.orianna.types.common.Queue; import com.merakianalytics.orianna.types.common.Region; import com.merakianalytics.orianna.types.common.Tier; @@ -27,7 +28,7 @@ public Series get() { private final Supplier summoner = Suppliers.memoize(new Supplier() { @Override public Summoner get() { - if(coreData.getSummonerId() == 0L) { + if(coreData.getSummonerId() == null) { return null; } final Summoner summoner = Summoner.withId(coreData.getSummonerId()).withPlatform(Platform.withTag(coreData.getPlatform())).get(); @@ -72,6 +73,10 @@ public Platform getPlatform() { return Platform.withTag(coreData.getPlatform()); } + public Position getPosition() { + return Position.valueOf(coreData.getPosition()); + } + public Series getPromos() { return promos.get(); } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePositions.java b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePositions.java index d19ba1bdb..d8ef7d57d 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePositions.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/LeaguePositions.java @@ -46,7 +46,7 @@ private ManyBuilder(final Iterable summoners) { } public SearchableList get() { - final List ids = new ArrayList<>(); + final List ids = new ArrayList<>(); final Iterator iterator = summoners.iterator(); Summoner summoner = iterator.next(); @@ -96,7 +96,7 @@ public static ManyBuilder forSummoners(final Summoner... summoners) { private final Supplier summoner = Suppliers.memoize(new Supplier() { @Override public Summoner get() { - if(coreData.getSummonerId() == 0L) { + if(coreData.getSummonerId() == null) { return null; } return Summoner.withId(coreData.getSummonerId()).withPlatform(Platform.withTag(coreData.getPlatform())).get(); @@ -144,7 +144,7 @@ protected void loadCoreData(final String group) { if(coreData.getPlatform() != null) { builder.put("platform", Platform.withTag(coreData.getPlatform())); } - if(coreData.getSummonerId() != 0L) { + if(coreData.getSummonerId() != null) { builder.put("summonerId", coreData.getSummonerId()); } final com.merakianalytics.orianna.types.data.league.LeaguePositions data = diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/Leagues.java b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/Leagues.java index 96e65ae15..655a42758 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/Leagues.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/Leagues.java @@ -119,6 +119,14 @@ public static SelectBuilder.SubBuilder challengerInQueues(final Queue... queues) return new SelectBuilder(Tier.CHALLENGER).inQueues(queues); } + public static SelectBuilder.SubBuilder grandmasterInQueues(final Iterable queues) { + return new SelectBuilder(Tier.GRANDMASTER).inQueues(queues); + } + + public static SelectBuilder.SubBuilder grandmasterInQueues(final Queue... queues) { + return new SelectBuilder(Tier.GRANDMASTER).inQueues(queues); + } + public static SelectBuilder.SubBuilder masterInQueues(final Iterable queues) { return new SelectBuilder(Tier.MASTER).inQueues(queues); } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/PositionalQueues.java b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/PositionalQueues.java new file mode 100644 index 000000000..1413a69a5 --- /dev/null +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/core/league/PositionalQueues.java @@ -0,0 +1,160 @@ +package com.merakianalytics.orianna.types.core.league; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.common.base.Function; +import com.google.common.collect.ImmutableMap; +import com.merakianalytics.datapipelines.iterators.CloseableIterator; +import com.merakianalytics.datapipelines.iterators.CloseableIterators; +import com.merakianalytics.orianna.Orianna; +import com.merakianalytics.orianna.types.common.Platform; +import com.merakianalytics.orianna.types.common.Queue; +import com.merakianalytics.orianna.types.common.Region; +import com.merakianalytics.orianna.types.core.GhostObject; +import com.merakianalytics.orianna.types.core.searchable.SearchableList; +import com.merakianalytics.orianna.types.core.searchable.SearchableLists; + +public class PositionalQueues extends GhostObject.ListProxy { + public static class Builder { + private Platform platform; + + private Builder() {} + + public PositionalQueues get() { + if(platform == null) { + platform = Orianna.getSettings().getDefaultPlatform(); + if(platform == null) { + throw new IllegalStateException( + "No platform/region was set! Must either set a default platform/region with Orianna.setDefaultPlatform or Orianna.setDefaultRegion, or include a platform/region with the request!"); + } + } + + final ImmutableMap.Builder builder = ImmutableMap. builder().put("platform", platform); + return Orianna.getSettings().getPipeline().get(PositionalQueues.class, builder.build()); + } + + public Builder withPlatform(final Platform platform) { + this.platform = platform; + return this; + } + + public Builder withRegion(final Region region) { + platform = region.getPlatform(); + return this; + } + } + + public static class ManyBuilder { + private final Iterable platforms; + private boolean streaming = false; + + private ManyBuilder(final Iterable platforms) { + this.platforms = platforms; + } + + public SearchableList get() { + final ImmutableMap.Builder builder = ImmutableMap. builder().put("platforms", platforms); + + final CloseableIterator result = Orianna.getSettings().getPipeline().getMany(PositionalQueues.class, builder.build(), streaming); + return streaming ? SearchableLists.from(CloseableIterators.toLazyList(result)) : SearchableLists.from(CloseableIterators.toList(result)); + } + + public ManyBuilder streaming() { + streaming = true; + return this; + } + } + + private static final long serialVersionUID = 6003302668600909723L; + + public static PositionalQueues get() { + return new Builder().get(); + } + + public static Builder withPlatform(final Platform platform) { + return new Builder().withPlatform(platform); + } + + public static ManyBuilder withPlatforms(final Iterable platforms) { + return new ManyBuilder(platforms); + } + + public static ManyBuilder withPlatforms(final Platform... platforms) { + return new ManyBuilder(Arrays.asList(platforms)); + } + + public static Builder withRegion(final Region region) { + return new Builder().withRegion(region); + } + + public static ManyBuilder withRegions(final Iterable regions) { + final List platforms = new ArrayList<>(); + for(final Region region : regions) { + platforms.add(region.getPlatform()); + } + return new ManyBuilder(platforms); + } + + public static ManyBuilder withRegions(final Region... regions) { + final List platforms = new ArrayList<>(regions.length); + for(final Region region : regions) { + platforms.add(region.getPlatform()); + } + return new ManyBuilder(platforms); + } + + public PositionalQueues(final com.merakianalytics.orianna.types.data.league.PositionalQueues coreData) { + super(coreData, 1); + } + + @Override + public boolean exists() { + if(coreData.isEmpty()) { + load(LIST_PROXY_LOAD_GROUP); + } + return !coreData.isEmpty(); + } + + @Override + protected List getLoadGroups() { + return Arrays.asList(new String[] { + LIST_PROXY_LOAD_GROUP + }); + } + + public Platform getPlatform() { + return Platform.withTag(coreData.getPlatform()); + } + + public Region getRegion() { + return Platform.withTag(coreData.getPlatform()).getRegion(); + } + + @Override + protected void loadCoreData(final String group) { + ImmutableMap.Builder builder; + switch(group) { + case LIST_PROXY_LOAD_GROUP: + builder = ImmutableMap.builder(); + if(coreData.getPlatform() != null) { + builder.put("platform", Platform.withTag(coreData.getPlatform())); + } + final com.merakianalytics.orianna.types.data.league.PositionalQueues data = + Orianna.getSettings().getPipeline().get(com.merakianalytics.orianna.types.data.league.PositionalQueues.class, builder.build()); + if(data != null) { + coreData = data; + } + loadListProxyData(new Function() { + @Override + public Queue apply(final String queue) { + return Queue.valueOf(queue); + } + }); + break; + default: + break; + } + } +} diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/core/staticdata/Versions.java b/orianna/src/main/java/com/merakianalytics/orianna/types/core/staticdata/Versions.java index aa835943f..0824702d3 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/core/staticdata/Versions.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/core/staticdata/Versions.java @@ -1,14 +1,19 @@ package com.merakianalytics.orianna.types.core.staticdata; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import com.google.common.base.Functions; import com.google.common.collect.ImmutableMap; +import com.merakianalytics.datapipelines.iterators.CloseableIterator; +import com.merakianalytics.datapipelines.iterators.CloseableIterators; import com.merakianalytics.orianna.Orianna; import com.merakianalytics.orianna.types.common.Platform; import com.merakianalytics.orianna.types.common.Region; import com.merakianalytics.orianna.types.core.GhostObject; +import com.merakianalytics.orianna.types.core.searchable.SearchableList; +import com.merakianalytics.orianna.types.core.searchable.SearchableLists; public class Versions extends GhostObject.ListProxy { public static class Builder { @@ -40,6 +45,27 @@ public Builder withRegion(final Region region) { } } + public static class ManyBuilder { + private final Iterable platforms; + private boolean streaming = false; + + private ManyBuilder(final Iterable platforms) { + this.platforms = platforms; + } + + public SearchableList get() { + final ImmutableMap.Builder builder = ImmutableMap. builder().put("platforms", platforms); + + final CloseableIterator result = Orianna.getSettings().getPipeline().getMany(Versions.class, builder.build(), streaming); + return streaming ? SearchableLists.from(CloseableIterators.toLazyList(result)) : SearchableLists.from(CloseableIterators.toList(result)); + } + + public ManyBuilder streaming() { + streaming = true; + return this; + } + } + private static final long serialVersionUID = 6003302668600909723L; public static Versions get() { @@ -50,10 +76,34 @@ public static Builder withPlatform(final Platform platform) { return new Builder().withPlatform(platform); } + public static ManyBuilder withPlatforms(final Iterable platforms) { + return new ManyBuilder(platforms); + } + + public static ManyBuilder withPlatforms(final Platform... platforms) { + return new ManyBuilder(Arrays.asList(platforms)); + } + public static Builder withRegion(final Region region) { return new Builder().withRegion(region); } + public static ManyBuilder withRegions(final Iterable regions) { + final List platforms = new ArrayList<>(); + for(final Region region : regions) { + platforms.add(region.getPlatform()); + } + return new ManyBuilder(platforms); + } + + public static ManyBuilder withRegions(final Region... regions) { + final List platforms = new ArrayList<>(regions.length); + for(final Region region : regions) { + platforms.add(region.getPlatform()); + } + return new ManyBuilder(platforms); + } + public Versions(final com.merakianalytics.orianna.types.data.staticdata.Versions coreData) { super(coreData, 1); } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeagueEntry.java b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeagueEntry.java index 1b022e638..62d2a9b3b 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeagueEntry.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeagueEntry.java @@ -3,11 +3,10 @@ import com.merakianalytics.orianna.types.data.CoreData; public class LeagueEntry extends CoreData { - private static final long serialVersionUID = 4267068460856854524L; - private String division, summonerName, platform; + private static final long serialVersionUID = -386628078546948368L; + private String division, summonerName, platform, summonerId; private boolean onHotStreak, veteran, inactive, freshBlood; private Series promos; - private long summonerId; private int wins, losses, leaguePoints; @Override @@ -58,7 +57,11 @@ public boolean equals(final Object obj) { } else if(!promos.equals(other.promos)) { return false; } - if(summonerId != other.summonerId) { + if(summonerId == null) { + if(other.summonerId != null) { + return false; + } + } else if(!summonerId.equals(other.summonerId)) { return false; } if(summonerName == null) { @@ -115,7 +118,7 @@ public Series getPromos() { /** * @return the summonerId */ - public long getSummonerId() { + public String getSummonerId() { return summonerId; } @@ -145,7 +148,7 @@ public int hashCode() { result = prime * result + (onHotStreak ? 1231 : 1237); result = prime * result + (platform == null ? 0 : platform.hashCode()); result = prime * result + (promos == null ? 0 : promos.hashCode()); - result = prime * result + (int)(summonerId ^ summonerId >>> 32); + result = prime * result + (summonerId == null ? 0 : summonerId.hashCode()); result = prime * result + (summonerName == null ? 0 : summonerName.hashCode()); result = prime * result + (veteran ? 1231 : 1237); result = prime * result + wins; @@ -248,7 +251,7 @@ public void setPromos(final Series promos) { * @param summonerId * the summonerId to set */ - public void setSummonerId(final long summonerId) { + public void setSummonerId(final String summonerId) { this.summonerId = summonerId; } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePosition.java b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePosition.java index 41daf4891..4363d2db9 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePosition.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePosition.java @@ -3,11 +3,10 @@ import com.merakianalytics.orianna.types.data.CoreData; public class LeaguePosition extends CoreData { - private static final long serialVersionUID = 7745380809131095259L; - private String name, summonerName, leagueId, division, platform, queue, tier; + private static final long serialVersionUID = 3807174768546132504L; + private String name, summonerName, leagueId, division, platform, queue, tier, summonerId, position; private boolean onHotStreak, veteran, inactive, freshBlood; private Series promos; - private long summonerId; private int wins, losses, leaguePoints; @Override @@ -65,6 +64,13 @@ public boolean equals(final Object obj) { } else if(!platform.equals(other.platform)) { return false; } + if(position == null) { + if(other.position != null) { + return false; + } + } else if(!position.equals(other.position)) { + return false; + } if(promos == null) { if(other.promos != null) { return false; @@ -79,7 +85,11 @@ public boolean equals(final Object obj) { } else if(!queue.equals(other.queue)) { return false; } - if(summonerId != other.summonerId) { + if(summonerId == null) { + if(other.summonerId != null) { + return false; + } + } else if(!summonerId.equals(other.summonerId)) { return false; } if(summonerName == null) { @@ -147,6 +157,13 @@ public String getPlatform() { return platform; } + /** + * @return the position + */ + public String getPosition() { + return position; + } + /** * @return the promos */ @@ -164,7 +181,7 @@ public String getQueue() { /** * @return the summonerId */ - public long getSummonerId() { + public String getSummonerId() { return summonerId; } @@ -202,9 +219,10 @@ public int hashCode() { result = prime * result + (name == null ? 0 : name.hashCode()); result = prime * result + (onHotStreak ? 1231 : 1237); result = prime * result + (platform == null ? 0 : platform.hashCode()); + result = prime * result + (position == null ? 0 : position.hashCode()); result = prime * result + (promos == null ? 0 : promos.hashCode()); result = prime * result + (queue == null ? 0 : queue.hashCode()); - result = prime * result + (int)(summonerId ^ summonerId >>> 32); + result = prime * result + (summonerId == null ? 0 : summonerId.hashCode()); result = prime * result + (summonerName == null ? 0 : summonerName.hashCode()); result = prime * result + (tier == null ? 0 : tier.hashCode()); result = prime * result + (veteran ? 1231 : 1237); @@ -312,6 +330,14 @@ public void setPlatform(final String platform) { this.platform = platform; } + /** + * @param position + * the position to set + */ + public void setPosition(final String position) { + this.position = position; + } + /** * @param promos * the promos to set @@ -332,7 +358,7 @@ public void setQueue(final String queue) { * @param summonerId * the summonerId to set */ - public void setSummonerId(final long summonerId) { + public void setSummonerId(final String summonerId) { this.summonerId = summonerId; } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePositions.java b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePositions.java index 80b7dafa0..196a8328b 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePositions.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/LeaguePositions.java @@ -3,9 +3,8 @@ import com.merakianalytics.orianna.types.data.CoreData; public class LeaguePositions extends CoreData.ListProxy { - private static final long serialVersionUID = -3004364671196314782L; - private String platform; - private long summonerId; + private static final long serialVersionUID = -78697578110185006L; + private String platform, summonerId; public LeaguePositions() { super(); @@ -34,7 +33,11 @@ public boolean equals(final Object obj) { } else if(!platform.equals(other.platform)) { return false; } - if(summonerId != other.summonerId) { + if(summonerId == null) { + if(other.summonerId != null) { + return false; + } + } else if(!summonerId.equals(other.summonerId)) { return false; } return true; @@ -50,7 +53,7 @@ public String getPlatform() { /** * @return the summonerId */ - public long getSummonerId() { + public String getSummonerId() { return summonerId; } @@ -59,7 +62,7 @@ public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + (platform == null ? 0 : platform.hashCode()); - result = prime * result + (int)(summonerId ^ summonerId >>> 32); + result = prime * result + (summonerId == null ? 0 : summonerId.hashCode()); return result; } @@ -75,7 +78,7 @@ public void setPlatform(final String platform) { * @param summonerId * the summonerId to set */ - public void setSummonerId(final long summonerId) { + public void setSummonerId(final String summonerId) { this.summonerId = summonerId; } } diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/PositionalQueues.java b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/PositionalQueues.java new file mode 100644 index 000000000..6b56438bc --- /dev/null +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/data/league/PositionalQueues.java @@ -0,0 +1,61 @@ +package com.merakianalytics.orianna.types.data.league; + +import com.merakianalytics.orianna.types.data.CoreData; + +public class PositionalQueues extends CoreData.ListProxy { + private static final long serialVersionUID = 3797565252885167561L; + private String platform; + + public PositionalQueues() { + super(); + } + + public PositionalQueues(final int initialCapacity) { + super(initialCapacity); + } + + @Override + public boolean equals(final Object obj) { + if(this == obj) { + return true; + } + if(!super.equals(obj)) { + return false; + } + if(getClass() != obj.getClass()) { + return false; + } + final PositionalQueues other = (PositionalQueues)obj; + if(platform == null) { + if(other.platform != null) { + return false; + } + } else if(!platform.equals(other.platform)) { + return false; + } + return true; + } + + /** + * @return the platform + */ + public String getPlatform() { + return platform; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + (platform == null ? 0 : platform.hashCode()); + return result; + } + + /** + * @param platform + * the platform to set + */ + public void setPlatform(final String platform) { + this.platform = platform; + } +} diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeagueItem.java b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeagueItem.java index d61522456..49b1ef704 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeagueItem.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeagueItem.java @@ -3,16 +3,12 @@ import com.merakianalytics.orianna.types.dto.DataObject; public class LeagueItem extends DataObject { - private static final long serialVersionUID = 9122058247241019504L; + private static final long serialVersionUID = -3026182755595917036L; private boolean hotStreak, veteran, inactive, freshBlood; private MiniSeries miniSeries; - private String rank, playerOrTeamId, playerOrTeamName; + private String rank, summonerId, summonerName; private int wins, losses, leaguePoints; - /* - * (non-Javadoc) - * @see java.lang.Object#equals(java.lang.Object) - */ @Override public boolean equals(final Object obj) { if(this == obj) { @@ -47,25 +43,25 @@ public boolean equals(final Object obj) { } else if(!miniSeries.equals(other.miniSeries)) { return false; } - if(playerOrTeamId == null) { - if(other.playerOrTeamId != null) { + if(rank == null) { + if(other.rank != null) { return false; } - } else if(!playerOrTeamId.equals(other.playerOrTeamId)) { + } else if(!rank.equals(other.rank)) { return false; } - if(playerOrTeamName == null) { - if(other.playerOrTeamName != null) { + if(summonerId == null) { + if(other.summonerId != null) { return false; } - } else if(!playerOrTeamName.equals(other.playerOrTeamName)) { + } else if(!summonerId.equals(other.summonerId)) { return false; } - if(rank == null) { - if(other.rank != null) { + if(summonerName == null) { + if(other.summonerName != null) { return false; } - } else if(!rank.equals(other.rank)) { + } else if(!summonerName.equals(other.summonerName)) { return false; } if(veteran != other.veteran) { @@ -99,24 +95,24 @@ public MiniSeries getMiniSeries() { } /** - * @return the playerOrTeamId + * @return the rank */ - public String getPlayerOrTeamId() { - return playerOrTeamId; + public String getRank() { + return rank; } /** - * @return the playerOrTeamName + * @return the summonerId */ - public String getPlayerOrTeamName() { - return playerOrTeamName; + public String getSummonerId() { + return summonerId; } /** - * @return the rank + * @return the summonerName */ - public String getRank() { - return rank; + public String getSummonerName() { + return summonerName; } /** @@ -126,10 +122,6 @@ public int getWins() { return wins; } - /* - * (non-Javadoc) - * @see java.lang.Object#hashCode() - */ @Override public int hashCode() { final int prime = 31; @@ -140,9 +132,9 @@ public int hashCode() { result = prime * result + leaguePoints; result = prime * result + losses; result = prime * result + (miniSeries == null ? 0 : miniSeries.hashCode()); - result = prime * result + (playerOrTeamId == null ? 0 : playerOrTeamId.hashCode()); - result = prime * result + (playerOrTeamName == null ? 0 : playerOrTeamName.hashCode()); result = prime * result + (rank == null ? 0 : rank.hashCode()); + result = prime * result + (summonerId == null ? 0 : summonerId.hashCode()); + result = prime * result + (summonerName == null ? 0 : summonerName.hashCode()); result = prime * result + (veteran ? 1231 : 1237); result = prime * result + wins; return result; @@ -225,27 +217,27 @@ public void setMiniSeries(final MiniSeries miniSeries) { } /** - * @param playerOrTeamId - * the playerOrTeamId to set + * @param rank + * the rank to set */ - public void setPlayerOrTeamId(final String playerOrTeamId) { - this.playerOrTeamId = playerOrTeamId; + public void setRank(final String rank) { + this.rank = rank; } /** - * @param playerOrTeamName - * the playerOrTeamName to set + * @param summonerId + * the summonerId to set */ - public void setPlayerOrTeamName(final String playerOrTeamName) { - this.playerOrTeamName = playerOrTeamName; + public void setSummonerId(final String summonerId) { + this.summonerId = summonerId; } /** - * @param rank - * the rank to set + * @param summonerName + * the summonerName to set */ - public void setRank(final String rank) { - this.rank = rank; + public void setSummonerName(final String summonerName) { + this.summonerName = summonerName; } /** diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeaguePosition.java b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeaguePosition.java index 7edfa131d..f57467bbe 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeaguePosition.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/LeaguePosition.java @@ -3,10 +3,10 @@ import com.merakianalytics.orianna.types.dto.DataObject; public class LeaguePosition extends DataObject { - private static final long serialVersionUID = -8412637506825155695L; + private static final long serialVersionUID = -5421614013697709731L; private boolean hotStreak, veteran, inactive, freshBlood; private MiniSeries miniSeries; - private String rank, queueType, playerOrTeamId, leagueName, playerOrTeamName, tier, platform, leagueId; + private String rank, queueType, summonerId, leagueName, summonerName, tier, platform, leagueId, position; private int wins, losses, leaguePoints; @Override @@ -64,18 +64,11 @@ public boolean equals(final Object obj) { } else if(!platform.equals(other.platform)) { return false; } - if(playerOrTeamId == null) { - if(other.playerOrTeamId != null) { + if(position == null) { + if(other.position != null) { return false; } - } else if(!playerOrTeamId.equals(other.playerOrTeamId)) { - return false; - } - if(playerOrTeamName == null) { - if(other.playerOrTeamName != null) { - return false; - } - } else if(!playerOrTeamName.equals(other.playerOrTeamName)) { + } else if(!position.equals(other.position)) { return false; } if(queueType == null) { @@ -92,6 +85,20 @@ public boolean equals(final Object obj) { } else if(!rank.equals(other.rank)) { return false; } + if(summonerId == null) { + if(other.summonerId != null) { + return false; + } + } else if(!summonerId.equals(other.summonerId)) { + return false; + } + if(summonerName == null) { + if(other.summonerName != null) { + return false; + } + } else if(!summonerName.equals(other.summonerName)) { + return false; + } if(tier == null) { if(other.tier != null) { return false; @@ -151,17 +158,10 @@ public String getPlatform() { } /** - * @return the playerOrTeamId + * @return the position */ - public String getPlayerOrTeamId() { - return playerOrTeamId; - } - - /** - * @return the playerOrTeamName - */ - public String getPlayerOrTeamName() { - return playerOrTeamName; + public String getPosition() { + return position; } /** @@ -178,6 +178,20 @@ public String getRank() { return rank; } + /** + * @return the summonerId + */ + public String getSummonerId() { + return summonerId; + } + + /** + * @return the summonerName + */ + public String getSummonerName() { + return summonerName; + } + /** * @return the tier */ @@ -205,10 +219,11 @@ public int hashCode() { result = prime * result + losses; result = prime * result + (miniSeries == null ? 0 : miniSeries.hashCode()); result = prime * result + (platform == null ? 0 : platform.hashCode()); - result = prime * result + (playerOrTeamId == null ? 0 : playerOrTeamId.hashCode()); - result = prime * result + (playerOrTeamName == null ? 0 : playerOrTeamName.hashCode()); + result = prime * result + (position == null ? 0 : position.hashCode()); result = prime * result + (queueType == null ? 0 : queueType.hashCode()); result = prime * result + (rank == null ? 0 : rank.hashCode()); + result = prime * result + (summonerId == null ? 0 : summonerId.hashCode()); + result = prime * result + (summonerName == null ? 0 : summonerName.hashCode()); result = prime * result + (tier == null ? 0 : tier.hashCode()); result = prime * result + (veteran ? 1231 : 1237); result = prime * result + wins; @@ -316,19 +331,11 @@ public void setPlatform(final String platform) { } /** - * @param playerOrTeamId - * the playerOrTeamId to set - */ - public void setPlayerOrTeamId(final String playerOrTeamId) { - this.playerOrTeamId = playerOrTeamId; - } - - /** - * @param playerOrTeamName - * the playerOrTeamName to set + * @param position + * the position to set */ - public void setPlayerOrTeamName(final String playerOrTeamName) { - this.playerOrTeamName = playerOrTeamName; + public void setPosition(final String position) { + this.position = position; } /** @@ -347,6 +354,22 @@ public void setRank(final String rank) { this.rank = rank; } + /** + * @param summonerId + * the summonerId to set + */ + public void setSummonerId(final String summonerId) { + this.summonerId = summonerId; + } + + /** + * @param summonerName + * the summonerName to set + */ + public void setSummonerName(final String summonerName) { + this.summonerName = summonerName; + } + /** * @param tier * the tier to set diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/PositionalQueuesList.java b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/PositionalQueuesList.java new file mode 100644 index 000000000..0614f0eb2 --- /dev/null +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/PositionalQueuesList.java @@ -0,0 +1,61 @@ +package com.merakianalytics.orianna.types.dto.league; + +import com.merakianalytics.orianna.types.dto.DataObject; + +public class PositionalQueuesList extends DataObject.ListProxy { + private static final long serialVersionUID = -2684536089075701179L; + private String platform; + + public PositionalQueuesList() { + super(); + } + + public PositionalQueuesList(final int initialCapacity) { + super(initialCapacity); + } + + @Override + public boolean equals(final Object obj) { + if(this == obj) { + return true; + } + if(!super.equals(obj)) { + return false; + } + if(getClass() != obj.getClass()) { + return false; + } + final PositionalQueuesList other = (PositionalQueuesList)obj; + if(platform == null) { + if(other.platform != null) { + return false; + } + } else if(!platform.equals(other.platform)) { + return false; + } + return true; + } + + /** + * @return the platform + */ + public String getPlatform() { + return platform; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + (platform == null ? 0 : platform.hashCode()); + return result; + } + + /** + * @param platform + * the platform to set + */ + public void setPlatform(final String platform) { + this.platform = platform; + } +} diff --git a/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/SummonerPositions.java b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/SummonerPositions.java index 5f38e7bfe..a975acab4 100644 --- a/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/SummonerPositions.java +++ b/orianna/src/main/java/com/merakianalytics/orianna/types/dto/league/SummonerPositions.java @@ -3,9 +3,8 @@ import com.merakianalytics.orianna.types.dto.DataObject; public class SummonerPositions extends DataObject.SetProxy { - private static final long serialVersionUID = 2991229866561625904L; - private String platform; - private long summonerId; + private static final long serialVersionUID = 3274909886912241039L; + private String platform, summonerId; @Override public boolean equals(final Object obj) { @@ -26,7 +25,11 @@ public boolean equals(final Object obj) { } else if(!platform.equals(other.platform)) { return false; } - if(summonerId != other.summonerId) { + if(summonerId == null) { + if(other.summonerId != null) { + return false; + } + } else if(!summonerId.equals(other.summonerId)) { return false; } return true; @@ -42,7 +45,7 @@ public String getPlatform() { /** * @return the summonerId */ - public long getSummonerId() { + public String getSummonerId() { return summonerId; } @@ -51,7 +54,7 @@ public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (platform == null ? 0 : platform.hashCode()); - result = prime * result + (int)(summonerId ^ summonerId >>> 32); + result = prime * result + (summonerId == null ? 0 : summonerId.hashCode()); return result; } @@ -67,7 +70,7 @@ public void setPlatform(final String platform) { * @param summonerId * the summonerId to set */ - public void setSummonerId(final long summonerId) { + public void setSummonerId(final String summonerId) { this.summonerId = summonerId; } } diff --git a/orianna/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json b/orianna/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json index 9c600e832..69d6adfe7 100644 --- a/orianna/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json +++ b/orianna/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json @@ -64,6 +64,10 @@ "period": 15, "unit": "MINUTES" }, + "com.merakianalytics.orianna.types.core.league.PositionalQueues": { + "period": 6, + "unit": "HOURS" + }, "com.merakianalytics.orianna.types.core.staticdata.Map": { "period": 6, "unit": "HOURS"