List of usage examples for com.google.common.base Predicates compose
public static <A, B> Predicate<A> compose(Predicate<B> predicate, Function<A, ? extends B> function)
From source file:tile80.world80.World80HOF.java
@Override public Iterable<Tile80> getTileByTag(String tag) { return FluentIterable.from(world).filter(Predicates.compose(PredicatesOnList.contains(tag), onlyTag)); }
From source file:org.apache.aurora.scheduler.updater.InstanceUpdater.java
private static boolean isPermanentlyKilled(IScheduledTask task) { boolean wasKilling = Iterables.any(task.getTaskEvents(), Predicates.compose(Predicates.equalTo(KILLING), ITaskEvent::getStatus)); return task.getStatus() != KILLING && wasKilling; }
From source file:com.rockhoppertech.music.examples.Guava.java
public static void composed() { MIDITrack track = MIDITrackBuilder.create().noteString("C D E F G").sequential().build(); AddFunction function = new AddFunction(1); Predicate<MIDINote> p = Predicates.compose(Predicates.alwaysTrue(), function); ImmutableList<MIDINote> notes = FluentIterable.from(track).filter(p).toList(); for (MIDINote note : notes) { System.err.println(note); }//from w ww .jav a 2 s .c om track = MIDITrackBuilder.create().noteString("C D E F G").sequential().build(); p = new PitchGreaterThanPredicate(Pitch.E5); notes = FluentIterable.from(track).filter(p).toList(); System.err.println("gt"); for (MIDINote note : notes) { System.err.println(note); } track = MIDITrackBuilder.create().noteString("C D E F G").sequential().build(); PitchFunction pf = new PitchFunction(Operation.ADD, 1); p = Predicates.compose(new PitchGreaterThanPredicate(Pitch.E5), pf); notes = FluentIterable.from(track).filter(p).toList(); System.err.println("gt add"); for (MIDINote note : notes) { System.err.println(note); } Function<Timed, Timed> startAndDur = Functions.compose(new DurationFunction(Operation.SET, Duration.S), new StartTimeFunction(Operation.ADD, 1d)); track = MIDITrackBuilder.create().noteString("C D E F G").sequential().build(); // they are actually MIDINotes ImmutableList<Timed> times = FluentIterable.from(track).transform(startAndDur).toList(); System.err.println("start and dur"); for (Timed note : times) { System.err.println(note); } }
From source file:tile80.world80.World80HOF.java
@Override public Iterable<Tile80> getTileByRect(Pair<Integer, Integer> topLeft, Pair<Integer, Integer> bottomRight) { return FluentIterable.from(world).filter(Predicates.compose(Range.closed(topLeft, bottomRight), onlyCoord)); }
From source file:com.twitter.aurora.scheduler.async.TaskGroup.java
void remove(String taskId) { Iterables.removeIf(tasks, Predicates.compose(Predicates.equalTo(taskId), TO_TASK_ID)); }
From source file:com.android.builder.files.RelativeFiles.java
/** * Constructs a predicate over relative files from a predicate over paths, applying it to the * normalized relative path contained in the relative file. * * @param predicate the file predicate// ww w.java2s .c o m * @return the relative file predicate built upon {@code predicate} */ @NonNull public static Predicate<RelativeFile> fromPathPredicate(@NonNull Predicate<String> predicate) { return Predicates.compose(predicate, RelativeFile.EXTRACT_PATH); }
From source file:forge.screens.deckeditor.controllers.CEditorCommander.java
/** * Child controller for constructed deck editor UI. * This is the least restrictive mode;//from w w w . j a v a2 s .c o m * all cards are available. */ @SuppressWarnings("serial") public CEditorCommander(final CDetailPicture cDetailPicture) { super(FScreen.DECK_EDITOR_COMMANDER, cDetailPicture); allSections.add(DeckSection.Main); allSections.add(DeckSection.Sideboard); allSections.add(DeckSection.Commander); commanderPool = ItemPool.createFrom( FModel.getMagicDb().getCommonCards().getAllCards( Predicates.compose(CardRulesPredicates.Presets.CAN_BE_COMMANDER, PaperCard.FN_GET_RULES)), PaperCard.class); normalPool = ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCards(), PaperCard.class); CardManager catalogManager = new CardManager(getCDetailPicture(), true); CardManager deckManager = new CardManager(getCDetailPicture(), true); catalogManager.setCaption("Catalog"); this.setCatalogManager(catalogManager); this.setDeckManager(deckManager); final Supplier<Deck> newCreator = new Supplier<Deck>() { @Override public Deck get() { return new Deck(); } }; this.controller = new DeckController<Deck>(FModel.getDecks().getCommander(), this, newCreator); getBtnAddBasicLands().setCommand(new UiCommand() { @Override public void run() { CEditorConstructed.addBasicLands(CEditorCommander.this); } }); }
From source file:org.apache.aurora.scheduler.updater.OneWayJobUpdater.java
private static <K, T> Set<K> filterByStatus(Map<K, InstanceUpdate<T>> instances, SideEffect.InstanceUpdateStatus status) { return ImmutableSet.copyOf( Maps.filterValues(instances, Predicates.compose(Predicates.equalTo(status), GET_STATE)).keySet()); }
From source file:forge.screens.deckeditor.controllers.CEditorConstructed.java
/** * Child controller for constructed deck editor UI. * This is the least restrictive mode;/*from ww w . j a va 2 s . c o m*/ * all cards are available. */ @SuppressWarnings("serial") public CEditorConstructed(final CDetailPicture cDetailPicture) { super(FScreen.DECK_EDITOR_CONSTRUCTED, cDetailPicture); allSections.add(DeckSection.Main); allSections.add(DeckSection.Sideboard); allSections.add(DeckSection.Avatar); allSections.add(DeckSection.Schemes); allSections.add(DeckSection.Planes); allSections.add(DeckSection.Conspiracy); normalPool = ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCards(), PaperCard.class); avatarPool = ItemPool.createFrom( FModel.getMagicDb().getVariantCards().getAllCards( Predicates.compose(CardRulesPredicates.Presets.IS_VANGUARD, PaperCard.FN_GET_RULES)), PaperCard.class); planePool = ItemPool.createFrom( FModel.getMagicDb().getVariantCards().getAllCards(Predicates .compose(CardRulesPredicates.Presets.IS_PLANE_OR_PHENOMENON, PaperCard.FN_GET_RULES)), PaperCard.class); schemePool = ItemPool.createFrom( FModel.getMagicDb().getVariantCards().getAllCards( Predicates.compose(CardRulesPredicates.Presets.IS_SCHEME, PaperCard.FN_GET_RULES)), PaperCard.class); conspiracyPool = ItemPool.createFrom( FModel.getMagicDb().getVariantCards().getAllCards( Predicates.compose(CardRulesPredicates.Presets.IS_CONSPIRACY, PaperCard.FN_GET_RULES)), PaperCard.class); CardManager catalogManager = new CardManager(getCDetailPicture(), false); // TODO: restore the functionality of the "want uniques only" toggle CardManager deckManager = new CardManager(getCDetailPicture(), false); // IMPORTANT: must *always* show all cards in the deck, otherwise cards with different art get ignored! catalogManager.setCaption("Catalog"); this.setCatalogManager(catalogManager); this.setDeckManager(deckManager); final Supplier<Deck> newCreator = new Supplier<Deck>() { @Override public Deck get() { return new Deck(); } }; this.controller = new DeckController<Deck>(FModel.getDecks().getConstructed(), this, newCreator); getBtnAddBasicLands().setCommand(new UiCommand() { @Override public void run() { CEditorConstructed.addBasicLands(CEditorConstructed.this); } }); }
From source file:forge.deck.generation.DeckGeneratorBase.java
protected void addCreaturesAndSpells(int size, List<ImmutablePair<FilterCMC, Integer>> cmcLevels, boolean forAi) { tmpDeck.append("Building deck of ").append(size).append("cards\n"); final Iterable<PaperCard> cards = selectCardsOfMatchingColorForPlayer(forAi); // build subsets based on type final Iterable<PaperCard> creatures = Iterables.filter(cards, Predicates.compose(CardRulesPredicates.Presets.IS_CREATURE, PaperCard.FN_GET_RULES)); final int creatCnt = (int) Math.ceil(getCreatPercentage() * size); tmpDeck.append("Creatures to add:").append(creatCnt).append("\n"); addCmcAdjusted(creatures, creatCnt, cmcLevels); Predicate<PaperCard> preSpells = Predicates .compose(CardRulesPredicates.Presets.IS_NONCREATURE_SPELL_FOR_GENERATOR, PaperCard.FN_GET_RULES); final Iterable<PaperCard> spells = Iterables.filter(cards, preSpells); final int spellCnt = (int) Math.ceil(getSpellPercentage() * size); tmpDeck.append("Spells to add:").append(spellCnt).append("\n"); addCmcAdjusted(spells, spellCnt, cmcLevels); tmpDeck.append(String.format("Current deck size: %d... should be %f%n", tDeck.countAll(), size * (getCreatPercentage() + getSpellPercentage()))); }