Example usage for com.google.common.collect ImmutableListMultimap get

List of usage examples for com.google.common.collect ImmutableListMultimap get

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableListMultimap get.

Prototype

@Override
public ImmutableList<V> get(@Nullable K key) 

Source Link

Document

Returns an immutable list of the values for the given key.

Usage

From source file:org.gradle.model.internal.manage.schema.extract.StructStrategy.java

private <R> void ensureNoOverloadedMethods(ModelSchemaExtractionContext<R> extractionContext,
        final ImmutableListMultimap<String, Method> methodsByName) {
    ImmutableSet<String> methodNames = methodsByName.keySet();
    for (String methodName : methodNames) {
        ImmutableList<Method> methods = methodsByName.get(methodName);
        if (methods.size() > 1) {
            List<Method> deduped = CollectionUtils.dedup(methods, equivalence);
            if (deduped.size() > 1) {
                throw invalidMethods(extractionContext, "overloaded methods are not supported", deduped);
            }/*from w  ww.  j  ava2 s  .  c om*/
        }
    }
}

From source file:com.facebook.buck.core.build.engine.manifest.Manifest.java

/** Adds a new output file to the manifest. */
public void addEntry(FileHashCache fileHashCache, RuleKey key, SourcePathResolver resolver,
        ImmutableSet<SourcePath> universe, ImmutableSet<SourcePath> inputs) throws IOException {

    // Construct the input sub-paths that we care about.
    ImmutableSet<String> inputPaths = RichStream.from(inputs).map(sourcePathToManifestHeaderFunction(resolver))
            .toImmutableSet();//from   ww  w  . ja  v  a  2s.co  m

    // Create a multimap from paths we care about to SourcePaths that maps to them.
    ImmutableListMultimap<String, SourcePath> sortedUniverse = index(universe,
            sourcePathToManifestHeaderFunction(resolver), inputPaths::contains);

    // Record the Entry.
    int index = 0;
    int[] hashIndices = new int[inputs.size()];
    for (String relativePath : inputPaths) {
        ImmutableList<SourcePath> paths = sortedUniverse.get(relativePath);
        Preconditions.checkState(!paths.isEmpty());
        hashIndices[index++] = addHash(relativePath, hashSourcePathGroup(fileHashCache, resolver, paths));
    }
    entries.add(new Pair<>(key, hashIndices));
}

From source file:com.google.auto.factory.processor.FactoryDescriptorGenerator.java

FactoryMethodDescriptor generateDescriptorForConstructor(final AutoFactoryDeclaration declaration,
        ExecutableElement constructor) {
    checkNotNull(constructor);/*www  . ja  v  a 2s.c o  m*/
    checkArgument(constructor.getKind() == ElementKind.CONSTRUCTOR);
    Element classElement = constructor.getEnclosingElement();
    Name returnType = classElement.accept(new ElementKindVisitor6<Name, Void>() {
        @Override
        protected Name defaultAction(Element e, Void p) {
            throw new AssertionError();
        }

        @Override
        public Name visitTypeAsClass(TypeElement e, Void p) {
            if (!e.getTypeParameters().isEmpty()) {
                messager.printMessage(ERROR, "AutoFactory does not support generic types", e);
            }
            return e.getQualifiedName();
        }
    }, null);
    ImmutableListMultimap<Boolean, ? extends VariableElement> parameterMap = Multimaps
            .index(constructor.getParameters(), Functions.forPredicate(new Predicate<VariableElement>() {
                @Override
                public boolean apply(VariableElement parameter) {
                    return parameter.getAnnotation(Provided.class) != null;
                }
            }));
    ImmutableSet<Parameter> providedParameters = Parameter.forParameterList(parameterMap.get(true));
    ImmutableSet<Parameter> passedParameters = Parameter.forParameterList(parameterMap.get(false));
    return new FactoryMethodDescriptor.Builder(declaration)
            .factoryName(declaration.getFactoryName(elements.getPackageOf(constructor).getQualifiedName(),
                    classElement.getSimpleName()))
            .name("create").returnType(returnType.toString())
            .publicMethod(constructor.getEnclosingElement().getModifiers().contains(PUBLIC))
            .providedParameters(providedParameters).passedParameters(passedParameters)
            .creationParameters(Parameter.forParameterList(constructor.getParameters())).build();
}

From source file:com.github.rinde.gpem17.eval.VanLonHolvoetResultWriter.java

void writeBidComputationTimeMeasurements(SimulationResult result) {
    if (!(result.getResultObject() instanceof SimResult)) {
        return;//w  ww  .ja  v  a  2 s .com
    }
    final SimResult info = (SimResult) result.getResultObject();

    if (!info.getAuctionEvents().isEmpty() && !info.getTimeMeasurements().isEmpty()) {

        final SimArgs simArgs = result.getSimArgs();
        final Scenario scenario = simArgs.getScenario();

        final String id = Joiner.on("-").join(simArgs.getMasConfig().getName(),
                scenario.getProblemClass().getId(), scenario.getProblemInstanceId(), simArgs.getRandomSeed(),
                simArgs.getRepetition());

        File statsDir = new File(experimentDirectory, "computation-time-stats");
        statsDir.mkdirs();

        final File auctionsFile = new File(statsDir, id + "-auctions.csv");
        final File compFile = new File(statsDir, id + "-bid-computations.csv");

        StringBuilder auctionContents = new StringBuilder();
        auctionContents.append("auction_start,auction_end,num_bids").append(System.lineSeparator());
        for (AuctionEvent e : info.getAuctionEvents()) {
            Joiner.on(",").appendTo(auctionContents, e.getAuctionStartTime(), e.getTime(), e.getNumBids());
            auctionContents.append(System.lineSeparator());
        }

        ImmutableListMultimap<Bidder<?>, SolverTimeMeasurement> measurements = info.getTimeMeasurements();
        StringBuilder compContents = new StringBuilder();
        compContents.append("bidder_id,comp_start_sim_time,route_length,duration_ns")
                .append(System.lineSeparator());
        int bidderId = 0;
        for (Bidder<?> bidder : measurements.keySet()) {
            List<SolverTimeMeasurement> ms = measurements.get(bidder);
            for (SolverTimeMeasurement m : ms) {

                // int available = m.input().getAvailableParcels().size();
                // int total = GlobalStateObjects.allParcels(m.input()).size();
                // int pickedUp = total - available;
                // (available * 2) + pickedUp;
                int routeLength = m.input().getVehicles().get(0).getRoute().get().size();

                Joiner.on(",").appendTo(compContents, bidderId, m.input().getTime(), routeLength,
                        m.durationNs());
                compContents.append(System.lineSeparator());
            }
            bidderId++;
        }
        try {
            Files.write(auctionContents, auctionsFile, Charsets.UTF_8);
            Files.write(compContents, compFile, Charsets.UTF_8);
        } catch (IOException e1) {
            throw new IllegalStateException(e1);
        }

    }
}

From source file:org.mskcc.shenkers.control.track.gene.GTFGeneModelProvider.java

@Override
public Iterable<GeneModel> query(String chr, int start, int end) {
    CloseableTribbleIterator<GTFContext> query = null;
    try {/*w w  w .  j  a va2  s  .  c om*/
        query = features.query(chr, start, end);

        Stream<GTFContext> filter = StreamSupport
                .stream(Spliterators.spliteratorUnknownSize(query, Spliterator.CONCURRENT), true)
                .filter(c -> c.getTranscriptId() != null);

        ImmutableListMultimap<String, GTFContext> transcript_id_multimap = Multimaps.index(filter.iterator(),
                GTFContext::getTranscriptId);

        Stream<GeneModel> map = transcript_id_multimap.keySet().stream().map(key -> {
            System.out.println(key);
            ImmutableListMultimap<String, GTFContext> transcript_features = Multimaps
                    .index(transcript_id_multimap.get(key), GTFContext::getFeature);
            Map<String, RangeSet<Integer>> collect = transcript_features.keySet().stream()
                    .collect(Collectors.toMap(s -> s, feature -> {
                        return transcript_features.get(feature).stream()
                                .map(c -> Range.closed(c.getStart(), c.getEnd()))
                                .collect(new RangeSetCollector());
                    }));

            GeneModel model = new GeneModel(collect.get("transcript").span(),
                    Optional.ofNullable(collect.get("exon")),
                    Optional.ofNullable(collect.get("CDS")).map(c -> c.span()));
            return model;
        });

        return map::iterator;
    } catch (IOException ex) {
        logger.error("exception reading gene models ", ex);
        throw new RuntimeException(ex);
    } finally {
        query.close();
    }
}

From source file:org.apache.james.mailbox.cassandra.mail.CassandraMessageDAO.java

private Stream<Pair<MessageWithoutAttachment, Stream<MessageAttachmentRepresentation>>> toMessagesWithAttachmentRepresentation(
        List<ComposedMessageIdWithMetaData> messageIds, FetchType fetchType, ResultSet resultSet) {
    ImmutableListMultimap<MessageId, Row> messagesById = CassandraUtils.convertToStream(resultSet).collect(
            Guavate.toImmutableListMultimap(row -> messageIdFactory.of(row.getUUID(MESSAGE_ID)), row -> row));
    return messageIds.stream()
            .filter(composedId -> !messagesById.get(composedId.getComposedMessageId().getMessageId()).isEmpty())
            .map(composedId -> message(
                    messagesById.get(composedId.getComposedMessageId().getMessageId()).get(0), composedId,
                    fetchType));/*  w  ww . ja v a 2s. co  m*/
}

From source file:com.google.gerrit.pgm.RebuildNoteDb.java

private boolean rebuildProject(ReviewDb db, ImmutableListMultimap<Project.NameKey, Change.Id> allChanges,
        Project.NameKey project, Repository allUsersRepo) throws IOException, OrmException {
    checkArgument(allChanges.containsKey(project));
    boolean ok = true;
    ProgressMonitor pm = new TextProgressMonitor(
            new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out, UTF_8))));
    pm.beginTask(FormatUtil.elide(project.get(), 50), allChanges.get(project).size());
    try (NoteDbUpdateManager manager = updateManagerFactory.create(project);
            ObjectInserter allUsersInserter = allUsersRepo.newObjectInserter();
            ObjectReader reader = allUsersInserter.newReader();
            RevWalk allUsersRw = new RevWalk(reader)) {
        manager.setAllUsersRepo(allUsersRepo, allUsersRw, allUsersInserter,
                new ChainedReceiveCommands(allUsersRepo));
        for (Change.Id changeId : allChanges.get(project)) {
            try {
                rebuilder.buildUpdates(manager, bundleReader.fromReviewDb(db, changeId));
            } catch (NoPatchSetsException e) {
                log.warn(e.getMessage());
            } catch (Throwable t) {
                log.error("Failed to rebuild change " + changeId, t);
                ok = false;//from   w ww  .  j ava  2 s . co m
            }
            pm.update(1);
        }
        manager.execute();
    } finally {
        pm.endTask();
    }
    return ok;
}

From source file:com.groupon.jenkins.dynamic.RecentBuilds.java

private List<RecentProject> groupByProject(Iterable<DynamicBuild> builds) {
    final ImmutableListMultimap<String, DynamicBuild> groupedByProject = Multimaps.index(builds,
            new Function<DynamicBuild, String>() {
                @Override//from ww  w .j av a 2  s.c om
                public String apply(DynamicBuild build) {
                    return build.getParent().getFullName();
                }
            });
    Iterable<RecentProject> groupedRecentProjects = Iterables.transform(groupedByProject.keySet(),
            new Function<String, RecentProject>() {
                @Override
                public RecentProject apply(String projectName) {
                    return new RecentProject(projectName, groupedByProject.get(projectName));
                }
            });
    return Lists.newArrayList(groupedRecentProjects);
}

From source file:com.github.rinde.jaamas17.VanLonHolvoetResultWriter.java

void writeBidComputationTimeMeasurements(SimulationResult result) {
    if (!(result.getResultObject() instanceof SimResult)) {
        return;//from   ww  w . j  a va 2s  .  c  o m
    }
    final SimResult info = (SimResult) result.getResultObject();
    final TimeMeasurements measurements = info.getTimeMeasurements().get();

    if (measurements.getAuctionEvents().isEmpty() || measurements.getBidTimeMeasurements().isEmpty()
            || measurements.getRpTimeMeasurements().isEmpty()) {
        return;
    }
    final SimArgs simArgs = result.getSimArgs();
    final Scenario scenario = simArgs.getScenario();

    final String id = Joiner.on("-").join(simArgs.getMasConfig().getName(), scenario.getProblemClass().getId(),
            scenario.getProblemInstanceId(), simArgs.getRandomSeed(), simArgs.getRepetition());

    final File statsDir = new File(experimentDirectory, "computation-time-stats");
    statsDir.mkdirs();

    if (!measurements.getAuctionEvents().isEmpty()) {
        final File auctionsFile = new File(statsDir, id + "-auctions.csv");
        final StringBuilder auctionContents = new StringBuilder();
        auctionContents.append("auction_start,auction_end,num_bids").append(System.lineSeparator());
        for (final AuctionEvent e : measurements.getAuctionEvents()) {
            Joiner.on(",").appendTo(auctionContents, e.getAuctionStartTime(), e.getTime(), e.getNumBids());
            auctionContents.append(System.lineSeparator());
        }
        try {
            Files.write(auctionContents, auctionsFile, Charsets.UTF_8);
        } catch (final IOException e) {
            throw new IllegalStateException(e);
        }
    }

    if (!measurements.getBidTimeMeasurements().isEmpty()) {
        final File compFile = new File(statsDir, id + "-bid-computations.csv");
        final ImmutableListMultimap<Bidder<?>, SolverTimeMeasurement> bidMeasurements = measurements
                .getBidTimeMeasurements();
        final StringBuilder compContents = new StringBuilder();
        compContents.append("bidder_id,comp_start_sim_time,route_length,duration_ns")
                .append(System.lineSeparator());
        int bidderId = 0;
        for (final Bidder<?> bidder : bidMeasurements.keySet()) {
            final List<SolverTimeMeasurement> ms = bidMeasurements.get(bidder);
            for (final SolverTimeMeasurement m : ms) {
                final int routeLength = m.input().getVehicles().get(0).getRoute().get().size();

                Joiner.on(",").appendTo(compContents, bidderId, m.input().getTime(), routeLength,
                        m.durationNs());
                compContents.append(System.lineSeparator());
            }
            bidderId++;
        }
        try {
            Files.write(compContents, compFile, Charsets.UTF_8);
        } catch (final IOException e1) {
            throw new IllegalStateException(e1);
        }
    }

    if (!measurements.getRpTimeMeasurements().isEmpty()) {
        final File rpCompFile = new File(statsDir, id + "-rp-computations.csv");
        final ImmutableListMultimap<RoutePlanner, SolverTimeMeasurement> solMeasurements = measurements
                .getRpTimeMeasurements();
        final StringBuilder compContents = new StringBuilder();
        compContents.append("route_planner_id,comp_start_sim_time,route_length,duration_ns")
                .append(System.lineSeparator());
        int rpId = 0;
        for (final RoutePlanner rp : solMeasurements.keySet()) {
            final List<SolverTimeMeasurement> ms = solMeasurements.get(rp);
            for (final SolverTimeMeasurement m : ms) {
                final int routeLength = m.input().getVehicles().get(0).getRoute().get().size();

                Joiner.on(",").appendTo(compContents, rpId, m.input().getTime(), routeLength, m.durationNs());
                compContents.append(System.lineSeparator());
            }
            rpId++;
        }
        try {
            Files.write(compContents, rpCompFile, Charsets.UTF_8);
        } catch (final IOException e1) {
            throw new IllegalStateException(e1);
        }
    }

    // clear measurements to avoid filling memory
    info.getTimeMeasurements().clear();
}

From source file:com.android.tools.idea.gradle.editor.ui.ReferencedValuesGradleEditorComponent.java

public void bind(@NotNull Project project, @NotNull List<GradleEditorSourceBinding> sourceBindings) {
    myProjectRef = new WeakReference<Project>(project);
    ImmutableListMultimap<VirtualFile, GradleEditorSourceBinding> byFile = Multimaps.index(sourceBindings,
            GROUPER);/*from ww  w  .j  a v  a 2s  .  c  om*/
    List<VirtualFile> orderedFiles = Lists.newArrayList(byFile.keySet());
    ContainerUtil.sort(orderedFiles, FILES_COMPARATOR);
    for (VirtualFile file : orderedFiles) {
        ImmutableList<GradleEditorSourceBinding> list = byFile.get(file);
        List<RangeMarker> rangeMarkers = Lists.newArrayList();
        for (GradleEditorSourceBinding descriptor : list) {
            rangeMarkers.add(descriptor.getRangeMarker());
        }
        if (!rangeMarkers.isEmpty()) {
            ContainerUtil.sort(rangeMarkers, RANGE_COMPARATOR);
            String name = getRepresentativeName(project, file);
            mySourceBindings.put(name, rangeMarkers);
            myFilesByName.put(name, file);
        }
    }
}