private Deck getFavoriteDeck() { Iterable<DeckProxy> decks; switch (lstDecks.getGameType()) { case Commander: decks = DeckProxy.getAllCommanderDecks(); break; case TinyLeaders: decks = DeckProxy.getAllTinyLeadersDecks(); break; case Archenemy: decks = DeckProxy.getAllSchemeDecks(); break; case Planechase: decks = DeckProxy.getAllPlanarDecks(); break; default: decks = DeckProxy.getAllConstructedDecks(); break; } decks = Iterables.filter( decks, new Predicate<DeckProxy>() { @Override public boolean apply(final DeckProxy deck) { return deck.isFavoriteDeck(); } }); if (Iterables.isEmpty(decks)) { return getGeneratedDeck(); // fall back to generated deck if no favorite decks } return Aggregates.random(decks).getDeck(); }
private Deck getUserDeck() { Iterable<DeckProxy> decks; final GameType gameType = lstDecks.getGameType(); switch (gameType) { case Commander: decks = DeckProxy.getAllCommanderDecks(DeckFormat.Commander.isLegalDeckPredicate()); break; case TinyLeaders: decks = DeckProxy.getAllTinyLeadersDecks(DeckFormat.TinyLeaders.isLegalDeckPredicate()); break; case Archenemy: decks = DeckProxy.getAllSchemeDecks(DeckFormat.Archenemy.isLegalDeckPredicate()); break; case Planechase: decks = DeckProxy.getAllPlanarDecks(DeckFormat.Planechase.isLegalDeckPredicate()); break; default: decks = DeckProxy.getAllConstructedDecks(gameType.getDeckFormat().isLegalDeckPredicate()); break; } if (Iterables.isEmpty(decks)) { return getGeneratedDeck(); // fall back to generated deck if no decks in filtered list } return Aggregates.random(decks).getDeck(); }