List of usage examples for com.google.common.collect ImmutableSetMultimap builder
public static <K, V> Builder<K, V> builder()
From source file:zipkin.storage.cassandra.Indexer.java
ImmutableSet<ListenableFuture<?>> index(List<Span> spans) { // First parse each span into partition keys used to support query requests Builder<PartitionKeyToTraceId, Long> parsed = ImmutableSetMultimap.builder(); for (Span span : spans) { Long timestamp = guessTimestamp(span); if (timestamp == null) continue; for (String partitionKey : index.partitionKeys(span)) { parsed.put(new PartitionKeyToTraceId(index.table(), partitionKey, span.traceId), 1000 * (timestamp / 1000)); // index precision is millis }/*from w ww . j ava2 s .c o m*/ } // The parsed results may include inserts that already occur, or are redundant as they don't // impact QueryRequest.endTs or QueryRequest.loopback. For example, a parsed timestamp could // be between timestamps of rows that already exist for a particular trace. ImmutableSetMultimap<PartitionKeyToTraceId, Long> maybeInsert = parsed.build(); ImmutableSetMultimap<PartitionKeyToTraceId, Long> toInsert; if (sharedState == null) { // special-case when caching is disabled. toInsert = maybeInsert; } else { // Optimized results will be smaller when the input includes traces with local spans, or when // other threads indexed the same trace. toInsert = entriesThatIncreaseGap(sharedState, maybeInsert); if (maybeInsert.size() > toInsert.size() && LOG.isDebugEnabled()) { int delta = maybeInsert.size() - toInsert.size(); LOG.debug("optimized out {}/{} inserts into {}", delta, maybeInsert.size(), index.table()); } } // For each entry, insert a new row in the index table asynchronously ImmutableSet.Builder<ListenableFuture<?>> result = ImmutableSet.builder(); for (Map.Entry<PartitionKeyToTraceId, Long> entry : toInsert.entries()) { BoundStatement bound = bindWithName(prepared, boundName).setLong("trace_id", entry.getKey().traceId) .setBytesUnsafe("ts", timestampCodec.serialize(entry.getValue())); if (indexTtl != null) { bound.setInt("ttl_", indexTtl); } index.bindPartitionKey(bound, entry.getKey().partitionKey); result.add(session.executeAsync(bound)); } return result.build(); }
From source file:uk.ac.ebi.atlas.search.baseline.BaselineExperimentAssayGroupsDao.java
public SetMultimap<String, String> fetchExperimentAssayGroupsWithNonSpecificExpression( Optional<? extends Collection<IndexedAssayGroup>> indexedAssayGroups, Optional<? extends Collection<String>> geneIds) { if (isEmpty(indexedAssayGroups) && isEmpty(geneIds)) { return ImmutableSetMultimap.<String, String>builder().build(); }/* w ww . j a v a 2s .c o m*/ Optional<ImmutableSet<IndexedAssayGroup>> uniqueIndexedAssayGroups = uniqueIndexedContrasts( indexedAssayGroups); log("fetchExperimentAssayGroupsWithNonSpecificExpression", uniqueIndexedAssayGroups, geneIds); Stopwatch stopwatch = Stopwatch.createStarted(); DatabaseQuery<Object> baselineExpressionQuery = buildSelect(uniqueIndexedAssayGroups, geneIds); try { SetMultimap<String, String> results = jdbcTemplate.query(baselineExpressionQuery.getQuery(), baselineExpressionQuery.getParameters().toArray(), new ResultSetExtractor<SetMultimap<String, String>>() { @Override public SetMultimap<String, String> extractData(ResultSet rs) throws SQLException, DataAccessException { ImmutableSetMultimap.Builder<String, String> builder = ImmutableSetMultimap.builder(); while (rs.next()) { String experimentAccession = rs.getString("experiment"); String assayGroupId = rs.getString("assaygroupid"); builder.put(experimentAccession, assayGroupId); } return builder.build(); } }); stopwatch.stop(); LOGGER.debug(String.format( "fetchExperimentAssayGroupsWithNonSpecificExpression returned %s results in %.2f seconds", results.size(), stopwatch.elapsed(TimeUnit.MILLISECONDS) / 1000D)); return results; } catch (Exception e) { LOGGER.error(e.getMessage(), e); throw e; } }
From source file:com.google.copybara.git.Mirror.java
@Override public ImmutableSetMultimap<String, String> getDestinationDescription() { return new ImmutableSetMultimap.Builder<String, String>().put("url", destination) .putAll("ref", refspec.stream().map(Refspec::toString).collect(Collectors.toList())).build(); }
From source file:com.facebook.buck.java.PrebuiltJar.java
PrebuiltJar(BuildRuleParams buildRuleParams, Path classesJar, Optional<Path> sourceJar, Optional<String> javadocUrl) { this.target = buildRuleParams.getBuildTarget(); this.deps = buildRuleParams.getDeps(); this.binaryJar = Preconditions.checkNotNull(classesJar); this.sourceJar = Preconditions.checkNotNull(sourceJar); this.javadocUrl = Preconditions.checkNotNull(javadocUrl); transitiveClasspathEntriesSupplier = Suppliers .memoize(new Supplier<ImmutableSetMultimap<JavaLibrary, Path>>() { @Override/* w w w . j a v a 2s . c om*/ public ImmutableSetMultimap<JavaLibrary, Path> get() { ImmutableSetMultimap.Builder<JavaLibrary, Path> classpathEntries = ImmutableSetMultimap .builder(); classpathEntries.put(PrebuiltJar.this, getBinaryJar()); classpathEntries.putAll(Classpaths.getClasspathEntries(deps)); return classpathEntries.build(); } }); declaredClasspathEntriesSupplier = Suppliers .memoize(new Supplier<ImmutableSetMultimap<JavaLibrary, Path>>() { @Override public ImmutableSetMultimap<JavaLibrary, Path> get() { ImmutableSetMultimap.Builder<JavaLibrary, Path> classpathEntries = ImmutableSetMultimap .builder(); classpathEntries.put(PrebuiltJar.this, getBinaryJar()); return classpathEntries.build(); } }); buildOutputInitializer = new BuildOutputInitializer<>(buildRuleParams.getBuildTarget(), this); }
From source file:io.prestosql.sql.planner.EqualityInference.java
private EqualityInference(Iterable<Set<Expression>> equalityGroups, Set<Expression> derivedExpressions) { ImmutableSetMultimap.Builder<Expression, Expression> setBuilder = ImmutableSetMultimap.builder(); for (Set<Expression> equalityGroup : equalityGroups) { if (!equalityGroup.isEmpty()) { setBuilder.putAll(CANONICAL_ORDERING.min(equalityGroup), equalityGroup); }//w ww . ja v a 2 s. c om } equalitySets = setBuilder.build(); ImmutableMap.Builder<Expression, Expression> mapBuilder = ImmutableMap.builder(); for (Map.Entry<Expression, Expression> entry : equalitySets.entries()) { Expression canonical = entry.getKey(); Expression expression = entry.getValue(); mapBuilder.put(expression, canonical); } canonicalMap = mapBuilder.build(); this.derivedExpressions = ImmutableSet.copyOf(derivedExpressions); }
From source file:com.facebook.presto.sql.planner.EqualityInference.java
private EqualityInference(Iterable<Set<Expression>> equalityGroups) { ImmutableSetMultimap.Builder<Expression, Expression> setBuilder = ImmutableSetMultimap.builder(); for (Set<Expression> equalityGroup : equalityGroups) { if (!equalityGroup.isEmpty()) { setBuilder.putAll(CANONICAL_ORDERING.min(equalityGroup), equalityGroup); }/*from w ww. j a v a 2 s . co m*/ } equalitySets = setBuilder.build(); ImmutableMap.Builder<Expression, Expression> mapBuilder = ImmutableMap.builder(); for (Map.Entry<Expression, Expression> entry : equalitySets.entries()) { Expression canonical = entry.getKey(); Expression expression = entry.getValue(); mapBuilder.put(expression, canonical); } canonicalMap = mapBuilder.build(); }
From source file:omero.cmd.graphs.GraphRequestFactory.java
/** * Construct a new graph request factory. * @param aclVoter ACL voter for permissions checking * @param securityRoles the security roles * @param systemTypes for identifying the system types * @param graphPathBean the graph path bean * @param deletionInstance a deletion instance for deleting files * @param allTargets legal target object classes for all request classes that use the graph path bean * @param allRules rules for all request classes that use the graph path bean * @param unnullable properties that, while nullable, may not be nulled by a graph traversal operation * @param defaultExcludeNs the default value for an unset excludeNs field * @throws GraphException if the graph path rules could not be parsed *///w ww. j a v a 2 s .co m public GraphRequestFactory(ACLVoter aclVoter, Roles securityRoles, SystemTypes systemTypes, GraphPathBean graphPathBean, Deletion deletionInstance, Map<Class<? extends Request>, List<String>> allTargets, Map<Class<? extends Request>, List<GraphPolicyRule>> allRules, List<String> unnullable, Set<String> defaultExcludeNs) throws GraphException { this.aclVoter = aclVoter; this.securityRoles = securityRoles; this.systemTypes = systemTypes; this.graphPathBean = graphPathBean; this.deletionInstance = deletionInstance; final ImmutableSetMultimap.Builder<Class<? extends Request>, Class<? extends IObject>> allTargetsBuilder = ImmutableSetMultimap .builder(); for (final Map.Entry<Class<? extends Request>, List<String>> rules : allTargets.entrySet()) { final Class<? extends Request> requestClass = rules.getKey(); for (final String targetClassName : rules.getValue()) { allTargetsBuilder.put(requestClass, graphPathBean.getClassForSimpleName(targetClassName)); } } this.allTargets = allTargetsBuilder.build(); final ImmutableMap.Builder<Class<? extends Request>, GraphPolicy> graphPoliciesBuilder = ImmutableMap .builder(); for (final Map.Entry<Class<? extends Request>, List<GraphPolicyRule>> rules : allRules.entrySet()) { graphPoliciesBuilder.put(rules.getKey(), GraphPolicyRule.parseRules(graphPathBean, rules.getValue())); } this.graphPolicies = graphPoliciesBuilder.build(); final ImmutableSetMultimap.Builder<String, String> unnullableBuilder = ImmutableSetMultimap.builder(); for (final String classProperty : unnullable) { final int period = classProperty.indexOf('.'); final String classNameSimple = classProperty.substring(0, period); final String property = classProperty.substring(period + 1); final String classNameFull = graphPathBean.getClassForSimpleName(classNameSimple).getName(); unnullableBuilder.put(classNameFull, property); } this.unnullable = unnullableBuilder.build(); this.defaultExcludeNs = ImmutableSet.copyOf(defaultExcludeNs); }
From source file:org.sonar.server.rule.RuleRepositories.java
void register(RulesDefinition.Context context) { ImmutableSortedSet.Builder<Repository> listBuilder = ImmutableSortedSet.naturalOrder(); ImmutableSetMultimap.Builder<String, Repository> langBuilder = ImmutableSetMultimap.builder(); ImmutableMap.Builder<String, Repository> keyBuilder = ImmutableMap.builder(); for (RulesDefinition.Repository repoDef : context.repositories()) { Repository repository = new Repository(repoDef); listBuilder.add(repository);// w ww .j a v a 2 s. c o m langBuilder.put(repository.language(), repository); keyBuilder.put(repository.key(), repository); } repositories = listBuilder.build(); repositoriesByLang = langBuilder.build(); repositoriesByKey = keyBuilder.build(); }
From source file:com.facebook.presto.metadata.DiscoveryNodeManager.java
private synchronized PrestoNode refreshNodesInternal() { lastUpdateTimestamp = System.nanoTime(); // This is currently a blacklist. // TODO: make it a whitelist (a failure-detecting service selector) and maybe build in support for injecting this in airlift Set<ServiceDescriptor> services = serviceSelector.selectAllServices().stream() .filter(service -> !failureDetector.getFailed().contains(service)).collect(toImmutableSet()); PrestoNode currentNode = null;/*from w ww .ja va2 s . c o m*/ ImmutableSet.Builder<Node> activeNodesBuilder = ImmutableSet.builder(); ImmutableSet.Builder<Node> inactiveNodesBuilder = ImmutableSet.builder(); ImmutableSet.Builder<Node> coordinatorsBuilder = ImmutableSet.builder(); ImmutableSetMultimap.Builder<String, Node> byDataSourceBuilder = ImmutableSetMultimap.builder(); for (ServiceDescriptor service : services) { URI uri = getHttpUri(service); NodeVersion nodeVersion = getNodeVersion(service); if (uri != null && nodeVersion != null) { PrestoNode node = new PrestoNode(service.getNodeId(), uri, nodeVersion); // record current node if (node.getNodeIdentifier().equals(nodeInfo.getNodeId())) { currentNode = node; checkState(currentNode.getNodeVersion().equals(expectedNodeVersion), "INVARIANT: current node version should be equal to expected node version"); } if (isActive(node)) { activeNodesBuilder.add(node); if (Boolean.parseBoolean(service.getProperties().get("coordinator"))) { coordinatorsBuilder.add(node); } // record available active nodes organized by data source String dataSources = service.getProperties().get("datasources"); if (dataSources != null) { dataSources = dataSources.toLowerCase(ENGLISH); for (String dataSource : DATASOURCES_SPLITTER.split(dataSources)) { byDataSourceBuilder.put(dataSource, node); } } // always add system data source byDataSourceBuilder.put(SystemConnector.NAME, node); } else { inactiveNodesBuilder.add(node); } } } allNodes = new AllNodes(activeNodesBuilder.build(), inactiveNodesBuilder.build()); activeNodesByDataSource = byDataSourceBuilder.build(); coordinators = coordinatorsBuilder.build(); checkState(currentNode != null, "INVARIANT: current node not returned from service selector"); return currentNode; }
From source file:com.facebook.buck.java.PrebuiltJarRule.java
PrebuiltJarRule(BuildRuleParams buildRuleParams, String classesJar, Optional<String> sourceJar, Optional<String> javadocUrl) { super(buildRuleParams); this.binaryJar = Preconditions.checkNotNull(classesJar); this.sourceJar = Preconditions.checkNotNull(sourceJar); this.javadocUrl = Preconditions.checkNotNull(javadocUrl); transitiveClasspathEntriesSupplier = Suppliers .memoize(new Supplier<ImmutableSetMultimap<JavaLibraryRule, String>>() { @Override//w w w .j av a2s . com public ImmutableSetMultimap<JavaLibraryRule, String> get() { ImmutableSetMultimap.Builder<JavaLibraryRule, String> classpathEntries = ImmutableSetMultimap .builder(); classpathEntries.put(PrebuiltJarRule.this, getBinaryJar()); classpathEntries.putAll(Classpaths.getClasspathEntries(getDeps())); return classpathEntries.build(); } }); declaredClasspathEntriesSupplier = Suppliers .memoize(new Supplier<ImmutableSetMultimap<JavaLibraryRule, String>>() { @Override public ImmutableSetMultimap<JavaLibraryRule, String> get() { ImmutableSetMultimap.Builder<JavaLibraryRule, String> classpathEntries = ImmutableSetMultimap .builder(); classpathEntries.put(PrebuiltJarRule.this, getBinaryJar()); return classpathEntries.build(); } }); }