List of usage examples for com.google.common.collect Multimaps index
public static <K, V> ImmutableListMultimap<K, V> index(Iterator<V> values, Function<? super V, K> keyFunction)
From source file:com.feedzai.commons.sql.abstraction.engine.testconfig.DatabaseConfigurationUtil.java
/** * Groups the configuration by vendor.// www . j ava 2s. c o m * * @param config The configuration. * @return Configuration grouped by vendor. */ private Map<String, Collection<String>> groupByVendor(Map<String, String> config) { return Multimaps.index(config.keySet(), new Function<String, String>() { @Override public String apply(String input) { return input.split("\\.")[0]; } }).asMap(); }
From source file:com.b2international.snowowl.snomed.validation.detail.SnomedValidationIssueDetailExtension.java
private void extendIssueDetails(BranchContext context, Collection<ValidationIssue> issues) { final RevisionSearcher searcher = context.service(RevisionSearcher.class); final Multimap<String, ValidationIssue> issuesByComponentId = Multimaps.index(issues, issue -> issue.getAffectedComponent().getComponentId()); final Multimap<ComponentCategory, String> issueComponentIdsByComponentCategory = HashMultimap.create(); issues.stream().forEach(issue -> { final ComponentCategory componentCategory = getComponentCategory( issue.getAffectedComponent().getTerminologyComponentId()); issueComponentIdsByComponentCategory.put(componentCategory, issue.getAffectedComponent().getComponentId()); });//from ww w . j a va 2s . c o m final Multimap<String, String> issueIdsByConceptIds = HashMultimap.create(); final Set<String> alreadyFetchedConceptIds = Sets.newHashSet(); for (ComponentCategory category : issueComponentIdsByComponentCategory.keySet()) { final Query<String[]> query = buildQuery(category, issueComponentIdsByComponentCategory.get(category)); for (Hits<String[]> hits : searcher.scroll(query)) { for (String[] hit : hits) { String id = hit[0]; String status = hit[1]; String moduleId = hit[2]; issuesByComponentId.get(id).forEach(validationIssue -> { validationIssue.setDetails(COMPONENT_STATUS, status); validationIssue.setDetails(COMPONENT_MODULE_ID, moduleId); if (CONCEPT == category) { validationIssue.setDetails(CONCEPT_STATUS, status); validationIssue.setDetails(SnomedDocument.Fields.EFFECTIVE_TIME, Long.parseLong(hit[3])); alreadyFetchedConceptIds.add(id); } else if (DESCRIPTION == category || RELATIONSHIP == category) { validationIssue.setDetails(SnomedDocument.Fields.EFFECTIVE_TIME, Long.parseLong(hit[3])); final String containerConceptId = hit[4]; if (!Strings.isNullOrEmpty(containerConceptId) && (!issueIdsByConceptIds.containsKey(containerConceptId) || !alreadyFetchedConceptIds.contains(containerConceptId))) { issueIdsByConceptIds.put(containerConceptId, id); } // in case of description just add the already fetched term as label to the issue, concepts and relationship will get their if (DESCRIPTION == category) { validationIssue.setAffectedComponentLabels(Collections.singletonList(hit[5])); } } }); } } } if (!issueIdsByConceptIds.isEmpty()) { final Query<String[]> conceptStatusQuery = Query.select(String[].class) .from(SnomedConceptDocument.class) .fields(SnomedConceptDocument.Fields.ID, SnomedConceptDocument.Fields.ACTIVE) .where(SnomedConceptDocument.Expressions.ids(issueIdsByConceptIds.keySet())).limit(SCROLL_SIZE) .build(); for (Hits<String[]> hits : searcher.scroll(conceptStatusQuery)) { for (String[] hit : hits) { Collection<String> issueIds = issueIdsByConceptIds.get(hit[0]); issueIds.stream().forEach(id -> { issuesByComponentId.get(id) .forEach(validationIssue -> validationIssue.setDetails(CONCEPT_STATUS, hit[1])); }); } } } }
From source file:com.arpnetworking.tsdcore.sinks.MonitordSink.java
private Multimap<String, Condition> prepareConditions(final Collection<Condition> conditions) { // Transform conditions return Multimaps.index(conditions, input -> { // NOTE: It is assumed as part of serialization that // that period is part of the unique metric name. return input.getFQDSN().getService() + "_" + input.getFQDSN().getMetric() + "_" + input.getFQDSN().getCluster() + "_" + input.getFQDSN().getStatistic(); });/*from ww w . ja v a 2 s . c om*/ }
From source file:com.b2international.snowowl.snomed.core.ecl.EclExpression.java
public Promise<Multimap<String, Integer>> resolveToConceptsWithGroups(final BranchContext context) { if (conceptsWithGroups == null) { final Set<String> characteristicTypes = isInferred() ? SnomedEclRefinementEvaluator.INFERRED_CHARACTERISTIC_TYPES : SnomedEclRefinementEvaluator.STATED_CHARACTERISTIC_TYPES; conceptsWithGroups = SnomedRequests.prepareSearchRelationship().all().filterByActive(true) .filterByCharacteristicTypes(characteristicTypes).filterBySource(ecl) .filterByGroup(1, Integer.MAX_VALUE).setEclExpressionForm(expressionForm) .setFields(SnomedRelationshipIndexEntry.Fields.ID, SnomedRelationshipIndexEntry.Fields.SOURCE_ID, SnomedRelationshipIndexEntry.Fields.GROUP) .build(context.id(), context.branchPath()).execute(context.service(IEventBus.class)) .then(new Function<SnomedRelationships, Multimap<String, Integer>>() { @Override/*w w w . ja v a2 s.c o m*/ public Multimap<String, Integer> apply(SnomedRelationships input) { final Multimap<String, SnomedRelationship> relationshipsBySource = Multimaps .index(input, SnomedRelationship::getSourceId); final Multimap<String, Integer> groupsByRelationshipId = Multimaps .transformValues(relationshipsBySource, SnomedRelationship::getGroup); return ImmutableSetMultimap.copyOf(groupsByRelationshipId); } }); } return conceptsWithGroups; }
From source file:com.facebook.buck.rules.Manifest.java
/** * @return the {@link RuleKey} of the entry that matches the on disk hashes provided by * {@code fileHashCache}.//from www .j ava 2 s.co m */ public Optional<RuleKey> lookup(FileHashCache fileHashCache, SourcePathResolver resolver, ImmutableSet<SourcePath> universe) throws IOException { ImmutableListMultimap<String, SourcePath> mappedUniverse = Multimaps.index(universe, sourcePathToManifestHeaderFunction(resolver)); for (Pair<RuleKey, int[]> entry : entries) { if (hashesMatch(fileHashCache, resolver, mappedUniverse, entry.getSecond())) { return Optional.of(entry.getFirst()); } } return Optional.empty(); }
From source file:com.google.auto.factory.processor.AutoFactoryProcessor.java
private void doProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { for (Element element : roundEnv.getElementsAnnotatedWith(Provided.class)) { providedChecker.checkProvidedParameter(element); }//w w w . j av a2s.co m ImmutableListMultimap.Builder<String, FactoryMethodDescriptor> indexedMethods = ImmutableListMultimap .builder(); ImmutableSet.Builder<ImplemetationMethodDescriptor> implemetationMethodDescriptors = ImmutableSet.builder(); for (Element element : roundEnv.getElementsAnnotatedWith(AutoFactory.class)) { Optional<AutoFactoryDeclaration> declaration = declarationFactory.createIfValid(element); if (declaration.isPresent()) { TypeElement extendingType = declaration.get().extendingType(); List<ExecutableElement> supertypeMethods = ElementFilter .methodsIn(elements.getAllMembers(extendingType)); for (ExecutableElement supertypeMethod : supertypeMethods) { if (supertypeMethod.getModifiers().contains(Modifier.ABSTRACT)) { ExecutableType methodType = Elements2.getExecutableElementAsMemberOf(types, supertypeMethod, extendingType); implemetationMethodDescriptors .add(new ImplemetationMethodDescriptor.Builder() .name(supertypeMethod.getSimpleName().toString()) .returnType(getAnnotatedType(element).getQualifiedName().toString()) .publicMethod() .passedParameters(Parameter.forParameterList( supertypeMethod.getParameters(), methodType.getParameterTypes())) .build()); } } for (TypeElement implementingType : declaration.get().implementingTypes()) { List<ExecutableElement> interfaceMethods = ElementFilter .methodsIn(elements.getAllMembers(implementingType)); for (ExecutableElement interfaceMethod : interfaceMethods) { if (interfaceMethod.getModifiers().contains(Modifier.ABSTRACT)) { ExecutableType methodType = Elements2.getExecutableElementAsMemberOf(types, interfaceMethod, implementingType); implemetationMethodDescriptors.add(new ImplemetationMethodDescriptor.Builder() .name(interfaceMethod.getSimpleName().toString()) .returnType(getAnnotatedType(element).getQualifiedName().toString()) .publicMethod() .passedParameters(Parameter.forParameterList(interfaceMethod.getParameters(), methodType.getParameterTypes())) .build()); } } } } ImmutableSet<FactoryMethodDescriptor> descriptors = factoryDescriptorGenerator .generateDescriptor(element); indexedMethods.putAll(Multimaps.index(descriptors, new Function<FactoryMethodDescriptor, String>() { @Override public String apply(FactoryMethodDescriptor descriptor) { return descriptor.factoryName(); } })); } for (Entry<String, Collection<FactoryMethodDescriptor>> entry : indexedMethods.build().asMap().entrySet()) { ImmutableSet.Builder<String> extending = ImmutableSet.builder(); ImmutableSortedSet.Builder<String> implementing = ImmutableSortedSet.naturalOrder(); boolean publicType = false; for (FactoryMethodDescriptor methodDescriptor : entry.getValue()) { extending.add(methodDescriptor.declaration().extendingType().getQualifiedName().toString()); for (TypeElement implementingType : methodDescriptor.declaration().implementingTypes()) { implementing.add(implementingType.getQualifiedName().toString()); } publicType |= methodDescriptor.publicMethod(); } try { factoryWriter.writeFactory( new FactoryDescriptor(entry.getKey(), Iterables.getOnlyElement(extending.build()), implementing.build(), publicType, ImmutableSet.copyOf(entry.getValue()), // TODO(gak): this needs to be indexed too implemetationMethodDescriptors.build())); } catch (IOException e) { messager.printMessage(Kind.ERROR, "failed"); } } }
From source file:edu.harvard.med.screensaver.service.libraries.PlateUpdater.java
private void updatePrimaryPlateStatus(Copy copy) { Map<PlateStatus, Integer> statusCounts = Maps.transformValues( Multimaps.index(copy.getPlates().values(), Plate.ToStatus).asMap(), CollectionSize); PlateStatus primaryPlateStatus = Collections.max(statusCounts.entrySet(), plateStatusFrequencyComparator) .getKey();/*ww w . j a va 2s . c o m*/ copy.setPrimaryPlateStatus(primaryPlateStatus); copy.setPlatesAvailable(statusCounts.get(PlateStatus.AVAILABLE)); }
From source file:org.obiba.opal.web.gwt.app.client.magma.view.SummaryTabView.java
private void renderCategoricalSummary(SummaryStatisticsDto dto) { CategoricalSummaryDto categorical = dto .getExtension(CategoricalSummaryDto.SummaryStatisticsDtoExtensions.categorical).cast(); final double[] totals = { 0d, 0d }; ImmutableListMultimap<Boolean, FrequencyDto> categoriesByMissing = Multimaps.index( JsArrays.toIterable(categorical.getFrequenciesArray()), new Function<FrequencyDto, Boolean>() { @Nullable/*from w ww . j a va 2 s. c o m*/ @Override public Boolean apply(@Nullable FrequencyDto input) { // when boolean, is missing is not set if (input != null && !input.getMissing()) { totals[0] += input.getFreq(); return false; } totals[1] += input == null ? 0 : input.getFreq(); return true; } }); summary.add(new CategoricalSummaryView(dto.getResource(), categorical, categoriesByMissing.get(false), categoriesByMissing.get(true), totals[0], totals[1], categorical.getOtherFrequency())); }
From source file:com.arpnetworking.tsdcore.sinks.KMonDSink.java
private Multimap<String, Condition> prepareConditions(final Collection<Condition> conditions) { // Transform conditions return Multimaps.index(conditions, input -> { // NOTE: It is assumed as part of serialization that // that period is part of the unique metric name. if (input == null) { return null; }/*from ww w. jav a 2 s . co m*/ return input.getFQDSN().getService() + "_" + input.getFQDSN().getMetric() + "_" + input.getFQDSN().getCluster() + "_" + input.getFQDSN().getStatistic(); }); }
From source file:org.apache.james.jmap.model.MessageFactory.java
private ImmutableMap<String, String> toMap(List<Field> fields) { Function<Entry<String, Collection<Field>>, String> bodyConcatenator = fieldListEntry -> fieldListEntry .getValue().stream().map(Field::getBody).collect(Collectors.toList()).stream() .collect(Collectors.joining(",")); return Multimaps.index(fields, Field::getName).asMap().entrySet().stream() .collect(Guavate.toImmutableMap(Map.Entry::getKey, bodyConcatenator)); }