List of usage examples for com.google.common.collect ImmutableSetMultimap builder
public static <K, V> Builder<K, V> builder()
From source file:com.google.caliper.runner.options.ParsedOptions.java
@Override public ImmutableSetMultimap<String, String> vmArguments() { // de-dup values, but keep in order return new ImmutableSetMultimap.Builder<String, String>().orderKeysBy(Ordering.natural()) .putAll(mutableVmArguments).build(); }
From source file:dagger.internal.codegen.BasicProcessor.java
/** * Returns the valid annotated elements contained in all of the deferred elements. If none are * found for a deferred element, defers it again. *//*www . jav a2s. c o m*/ private ImmutableSetMultimap<Class<? extends Annotation>, Element> validElements( ImmutableMap<String, Optional<? extends Element>> deferredElements, RoundEnvironment roundEnv) { ImmutableSetMultimap.Builder<Class<? extends Annotation>, Element> deferredElementsByAnnotationBuilder = ImmutableSetMultimap .builder(); for (Entry<String, Optional<? extends Element>> deferredTypeElementEntry : deferredElements.entrySet()) { Optional<? extends Element> deferredElement = deferredTypeElementEntry.getValue(); if (deferredElement.isPresent()) { findAnnotatedElements(deferredElement.get(), getSupportedAnnotationClasses(), deferredElementsByAnnotationBuilder); } else { deferredElementNames.add(ElementName.forTypeName(deferredTypeElementEntry.getKey())); } } ImmutableSetMultimap<Class<? extends Annotation>, Element> deferredElementsByAnnotation = deferredElementsByAnnotationBuilder .build(); ImmutableSetMultimap.Builder<Class<? extends Annotation>, Element> validElements = ImmutableSetMultimap .builder(); Set<ElementName> validElementNames = new LinkedHashSet<ElementName>(); // Look at the elements we've found and the new elements from this round and validate them. for (Class<? extends Annotation> annotationClass : getSupportedAnnotationClasses()) { // This should just call roundEnv.getElementsAnnotatedWith(Class) directly, but there is a bug // in some versions of eclipse that cause that method to crash. TypeElement annotationType = elements.getTypeElement(annotationClass.getCanonicalName()); Set<? extends Element> elementsAnnotatedWith = (annotationType == null) ? ImmutableSet.<Element>of() : roundEnv.getElementsAnnotatedWith(annotationType); for (Element annotatedElement : Sets.union(elementsAnnotatedWith, deferredElementsByAnnotation.get(annotationClass))) { if (annotatedElement.getKind().equals(PACKAGE)) { PackageElement annotatedPackageElement = (PackageElement) annotatedElement; ElementName annotatedPackageName = ElementName .forPackageName(annotatedPackageElement.getQualifiedName().toString()); boolean validPackage = validElementNames.contains(annotatedPackageName) || (!deferredElementNames.contains(annotatedPackageName) && validateElement(annotatedPackageElement)); if (validPackage) { validElements.put(annotationClass, annotatedPackageElement); validElementNames.add(annotatedPackageName); } else { deferredElementNames.add(annotatedPackageName); } } else { TypeElement enclosingType = getEnclosingType(annotatedElement); ElementName enclosingTypeName = ElementName .forTypeName(enclosingType.getQualifiedName().toString()); boolean validEnclosingType = validElementNames.contains(enclosingTypeName) || (!deferredElementNames.contains(enclosingTypeName) && validateElement(enclosingType)); if (validEnclosingType) { validElements.put(annotationClass, annotatedElement); validElementNames.add(enclosingTypeName); } else { deferredElementNames.add(enclosingTypeName); } } } } return validElements.build(); }
From source file:org.apache.sentry.provider.file.SimplePolicyEngine.java
/** * {@inheritDoc}/*from ww w .j a va 2 s . c o m*/ */ @Override public ImmutableSetMultimap<String, String> getPermissions(List<Authorizable> authorizables, List<String> groups) { Roles roles = rolesReference.get(); String database = null; Boolean isURI = false; for (Authorizable authorizable : authorizables) { if (authorizable instanceof Database) { database = authorizable.getName(); } if (authorizable instanceof AccessURI) { isURI = true; } } if (LOGGER.isDebugEnabled()) { LOGGER.debug("Getting permissions for {} via {}", groups, database); } ImmutableSetMultimap.Builder<String, String> resultBuilder = ImmutableSetMultimap.builder(); for (String group : groups) { resultBuilder.putAll(group, roles.getRoles(database, group, isURI)); } ImmutableSetMultimap<String, String> result = resultBuilder.build(); if (LOGGER.isDebugEnabled()) { LOGGER.debug("result = " + result); } return result; }
From source file:com.facebook.buck.android.apkmodule.APKModuleGraph.java
/** * Group the classes in the input jars into a multimap based on the APKModule they belong to * * @param apkModuleToJarPathMap the mapping of APKModules to the path for the jar files * @param translatorFunction function used to translate the class names to obfuscated names * @param filesystem filesystem representation for resolving paths * @return The mapping of APKModules to the class names they contain * @throws IOException/*from w w w . ja va 2 s. com*/ */ public static ImmutableMultimap<APKModule, String> getAPKModuleToClassesMap( ImmutableMultimap<APKModule, Path> apkModuleToJarPathMap, Function<String, String> translatorFunction, ProjectFilesystem filesystem) throws IOException { ImmutableMultimap.Builder<APKModule, String> builder = ImmutableSetMultimap.builder(); if (!apkModuleToJarPathMap.isEmpty()) { for (APKModule dexStore : apkModuleToJarPathMap.keySet()) { for (Path jarFilePath : apkModuleToJarPathMap.get(dexStore)) { ClasspathTraverser classpathTraverser = new DefaultClasspathTraverser(); classpathTraverser.traverse(new ClasspathTraversal(ImmutableSet.of(jarFilePath), filesystem) { @Override public void visit(FileLike entry) { if (!entry.getRelativePath().endsWith(".class")) { // ignore everything but class files in the jar. return; } String classpath = entry.getRelativePath().replaceAll("\\.class$", ""); if (translatorFunction.apply(classpath) != null) { builder.put(dexStore, translatorFunction.apply(classpath)); } } }); } } } return builder.build(); }
From source file:org.onosproject.store.topology.impl.DefaultTopology.java
private ImmutableSetMultimap<ClusterId, ConnectPoint> buildBroadcastSets() { Builder<ClusterId, ConnectPoint> builder = ImmutableSetMultimap.builder(); for (TopologyCluster cluster : clusters.get().values()) { addClusterBroadcastSet(cluster, builder); }/*from www . j a v a2 s . c o m*/ return builder.build(); }
From source file:uk.ac.ebi.atlas.bioentity.BioEntityPageController.java
protected ImmutableSetMultimap<Integer, GoPoTerm> mapGoTermsByDepth(Set<String> accessions) { ImmutableSetMultimap.Builder<Integer, GoPoTerm> builder = new ImmutableSetMultimap.Builder<>(); for (String accession : accessions) { builder.put(goTermTrader.getDepth(accession), goTermTrader.getTerm(accession)); }// www .ja v a 2s. co m return builder.build(); }
From source file:uk.ac.ebi.atlas.bioentity.BioEntityPageController.java
protected ImmutableSetMultimap<Integer, GoPoTerm> mapPoTermsByDepth(Set<String> accessions) { ImmutableSetMultimap.Builder<Integer, GoPoTerm> builder = new ImmutableSetMultimap.Builder<>(); for (String accession : accessions) { builder.put(poTermTrader.getDepth(accession), poTermTrader.getTerm(accession)); }//from w w w . j a va 2s . co m return builder.build(); }
From source file:com.publictransitanalytics.scoregenerator.workflow.Calculation.java
private static SetMultimap<PointLocation, Sector> buildPointSectorMap(final Grid grid, final Set<TransitStop> stops) { final ImmutableSetMultimap.Builder<PointLocation, Sector> builder = ImmutableSetMultimap.builder(); for (final PointLocation gridPoint : grid.getGridPoints()) { builder.putAll(gridPoint, grid.getSectors(gridPoint)); }//from w ww . ja v a2s . c o m for (final TransitStop stop : stops) { if (grid.coversPoint(stop.getLocation())) { final Set<Sector> sectors = grid.getSectors(stop); if (sectors.isEmpty()) { log.warn("{} ({}) is not within the bounds.", stop.getCommonName(), stop.getLocation().toDegreeString()); } else { builder.putAll(stop, sectors); } } } return builder.build(); }
From source file:com.example.processor.common.BasicAnnotationProcessor.java
/** Processes the valid elements, including those previously deferred by each step. */ private void process(ImmutableSetMultimap<Class<? extends Annotation>, Element> validElements) { for (ProcessingStep step : steps) { ImmutableSetMultimap<Class<? extends Annotation>, Element> stepElements = new ImmutableSetMultimap.Builder<Class<? extends Annotation>, Element>() .putAll(indexByAnnotation(elementsDeferredBySteps.get(step))) .putAll(filterKeys(validElements, Predicates.<Object>in(step.annotations()))).build(); if (stepElements.isEmpty()) { elementsDeferredBySteps.removeAll(step); } else {//from w w w . java 2 s. c om Set<Element> rejectedElements = step.process(stepElements); elementsDeferredBySteps.replaceValues(step, transform(rejectedElements, new Function<Element, ElementName>() { @Override public ElementName apply(Element element) { return ElementName.forAnnotatedElement(element); } })); } } }
From source file:org.onosproject.store.topology.impl.DefaultTopology.java
private ClusterIndexes buildIndexes() { // Prepare the index builders ImmutableMap.Builder<DeviceId, TopologyCluster> clusterBuilder = ImmutableMap.builder(); ImmutableSetMultimap.Builder<TopologyCluster, DeviceId> devicesBuilder = ImmutableSetMultimap.builder(); ImmutableSetMultimap.Builder<TopologyCluster, Link> linksBuilder = ImmutableSetMultimap.builder(); // Now scan through all the clusters for (TopologyCluster cluster : clusters.get().values()) { int i = cluster.id().index(); // Scan through all the cluster vertexes. for (TopologyVertex vertex : clusterResults.get().clusterVertexes().get(i)) { devicesBuilder.put(cluster, vertex.deviceId()); clusterBuilder.put(vertex.deviceId(), cluster); }//from www.ja v a2 s . com // Scan through all the cluster edges. for (TopologyEdge edge : clusterResults.get().clusterEdges().get(i)) { linksBuilder.put(cluster, edge.link()); } } // Finalize all indexes. return new ClusterIndexes(clusterBuilder.build(), devicesBuilder.build(), linksBuilder.build()); }