Example usage for com.google.common.base Predicates compose

List of usage examples for com.google.common.base Predicates compose

Introduction

In this page you can find the example usage for com.google.common.base Predicates compose.

Prototype

public static <A, B> Predicate<A> compose(Predicate<B> predicate, Function<A, ? extends B> function) 

Source Link

Document

Returns the composition of a function and a predicate.

Usage

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())));
}