List of usage examples for com.google.common.collect ImmutableListMultimap builder
public static <K, V> Builder<K, V> builder()
From source file:com.facebook.presto.sql.planner.iterative.rule.PushProjectionThroughUnion.java
@Override public Optional<PlanNode> apply(PlanNode node, Lookup lookup, PlanNodeIdAllocator idAllocator, SymbolAllocator symbolAllocator, Session session) { if (!(node instanceof ProjectNode)) { return Optional.empty(); }//from ww w . j a v a2 s .c om ProjectNode parent = (ProjectNode) node; PlanNode child = lookup.resolve(parent.getSource()); if (!(child instanceof UnionNode)) { return Optional.empty(); } UnionNode source = (UnionNode) child; // OutputLayout of the resultant Union, will be same as the layout of the Project List<Symbol> outputLayout = node.getOutputSymbols(); // Mapping from the output symbol to ordered list of symbols from each of the sources ImmutableListMultimap.Builder<Symbol, Symbol> mappings = ImmutableListMultimap.builder(); // sources for the resultant UnionNode ImmutableList.Builder<PlanNode> outputSources = ImmutableList.builder(); for (int i = 0; i < child.getSources().size(); i++) { Map<Symbol, SymbolReference> outputToInput = source.sourceSymbolMap(i); // Map: output of union -> input of this source to the union Assignments.Builder assignments = Assignments.builder(); // assignments for the new ProjectNode // mapping from current ProjectNode to new ProjectNode, used to identify the output layout Map<Symbol, Symbol> projectSymbolMapping = new HashMap<>(); // Translate the assignments in the ProjectNode using symbols of the source of the UnionNode for (Map.Entry<Symbol, Expression> entry : parent.getAssignments().entrySet()) { Expression translatedExpression = translateExpression(entry.getValue(), outputToInput); Type type = symbolAllocator.getTypes().get(entry.getKey()); Symbol symbol = symbolAllocator.newSymbol(translatedExpression, type); assignments.put(symbol, translatedExpression); projectSymbolMapping.put(entry.getKey(), symbol); } outputSources .add(new ProjectNode(idAllocator.getNextId(), source.getSources().get(i), assignments.build())); outputLayout.forEach(symbol -> mappings.put(symbol, projectSymbolMapping.get(symbol))); } return Optional.of(new UnionNode(node.getId(), outputSources.build(), mappings.build(), ImmutableList.copyOf(mappings.build().keySet()))); }
From source file:com.google.api.server.spi.MethodHierarchyReader.java
private void readMethodHierarchyIfNecessary() { if (endpointMethods == null) { ImmutableListMultimap.Builder<EndpointMethod.ResolvedSignature, EndpointMethod> builder = ImmutableListMultimap .builder();/*from www .ja v a2s . c om*/ buildServiceMethods(builder, TypeToken.of(endpointClass)); endpointMethods = builder.build(); } }
From source file:de.metas.ui.web.menu.MenuTree.java
private MenuTree(final long version, final MenuNode rootNode) { super();/*from ww w . ja va 2s .c om*/ this.version = version; Preconditions.checkNotNull(rootNode, "rootNode"); this.rootNode = rootNode; final ImmutableMap.Builder<String, MenuNode> nodesByIdBuilder = ImmutableMap.builder(); final ImmutableListMultimap.Builder<ArrayKey, MenuNode> nodesByTypeAndElementIdBuilder = ImmutableListMultimap .builder(); final ImmutableListMultimap.Builder<String, MenuNode> nodesByMainTableNameBuilder = ImmutableListMultimap .builder(); rootNode.iterate(node -> { nodesByIdBuilder.put(node.getId(), node); nodesByTypeAndElementIdBuilder.put(mkTypeAndElementIdKey(node.getType(), node.getElementId()), node); final String mainTableName = node.getMainTableName(); if (mainTableName != null) { nodesByMainTableNameBuilder.put(mainTableName, node); } }); nodesById = nodesByIdBuilder.build(); nodesByTypeAndElementId = nodesByTypeAndElementIdBuilder.build(); nodesByMainTableName = nodesByMainTableNameBuilder.build(); }
From source file:com.isotrol.impe3.web20.server.TagMap.java
TagMap(Builder builder) { final ImmutableListMultimap.Builder<Long, UsedTagDTO> b = ImmutableListMultimap.builder(); for (Long setId : builder.used.keySet()) { b.putAll(setId, COMPOUND.sortedCopy(builder.used.get(setId))); }/*from w w w . j a v a2 s . com*/ this.map = b.build(); this.tagMap = builder.countMap.build(); }
From source file:com.github.nmorel.gwtjackson.guava.client.deser.ImmutableListMultimapJsonDeserializer.java
@Override protected ImmutableListMultimap<K, V> doDeserialize(JsonReader reader, JsonDeserializationContext ctx, JsonDeserializerParameters params) { ImmutableListMultimap.Builder<K, V> builder = ImmutableListMultimap.builder(); buildMultimap(reader, ctx, params, builder); return builder.build(); }
From source file:org.nmdp.service.epitope.service.EpitopeServiceImpl.java
public void buildMaps() { ImmutableListMultimap.Builder<Integer, Allele> builder = ImmutableListMultimap.builder(); builder.orderKeysBy(Ordering.natural()); builder.orderValuesBy(new Comparator<Allele>() { @Override//from w w w . j a v a2 s .c o m public int compare(Allele o1, Allele o2) { return o1.getGlstring().compareTo(o2.getGlstring()); } }); for (int i = 0; i <= 3; i++) { Integer group = i; List<Allele> alleles = groupResolver.apply(group); if (null == alleles) { throw new IllegalStateException("failed to resolve alleles in group: " + group); } for (Allele allele : alleles) builder.put(group, allele); } groupAlleleMap = builder.build(); alleleGroupMap = groupAlleleMap.inverse(); }
From source file:com.facebook.buck.dotnet.CsharpLibrary.java
@Override public ImmutableList<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext) { ProjectFilesystem filesystem = getProjectFilesystem(); ImmutableSortedSet<Path> sourceFiles = context.getSourcePathResolver().getAllAbsolutePaths(srcs); ImmutableListMultimap.Builder<Path, String> resolvedResources = ImmutableListMultimap.builder(); for (Map.Entry<String, SourcePath> resource : resources.entrySet()) { resolvedResources.put(context.getSourcePathResolver().getAbsolutePath(resource.getValue()), resource.getKey());// ww w . j a v a2s. c om } ImmutableList<Either<Path, String>> references = resolveReferences(refs); ImmutableList.Builder<Step> steps = ImmutableList.builder(); steps.add(new MakeCleanDirectoryStep(filesystem, output.getParent())); steps.add(new CsharpLibraryCompile(filesystem.resolve(output), sourceFiles, references, resolvedResources.build(), version)); return steps.build(); }
From source file:com.isotrol.impe3.oi.server.ClassMap.java
ClassMap(Builder builder) { final ImmutableListMultimap.Builder<Long, UsedClassDTO> b = ImmutableListMultimap.builder(); for (Long setId : builder.used.keySet()) { b.putAll(setId, COMPOUND.sortedCopy(builder.used.get(setId))); }/* www.j a va2 s .c o m*/ this.map = b.build(); this.classMap = builder.countMap.build(); }
From source file:com.google.gerrit.server.change.AbandonUtil.java
public void abandonInactiveOpenChanges() { if (cfg.getAbandonAfter() <= 0) { return;// www. j av a 2 s. c o m } try { String query = "status:new age:" + TimeUnit.MILLISECONDS.toMinutes(cfg.getAbandonAfter()) + "m"; if (!cfg.getAbandonIfMergeable()) { query += " -is:mergeable"; } List<ChangeData> changesToAbandon = queryProcessor.enforceVisibility(false) .query(queryBuilder.parse(query)).entities(); ImmutableListMultimap.Builder<Project.NameKey, ChangeControl> builder = ImmutableListMultimap.builder(); for (ChangeData cd : changesToAbandon) { ChangeControl control = cd.changeControl(internalUser); builder.put(control.getProject().getNameKey(), control); } int count = 0; ListMultimap<Project.NameKey, ChangeControl> abandons = builder.build(); String message = cfg.getAbandonMessage(); for (Project.NameKey project : abandons.keySet()) { Collection<ChangeControl> changes = getValidChanges(abandons.get(project), query); try { abandon.batchAbandon(project, internalUser, changes, message); count += changes.size(); } catch (Throwable e) { StringBuilder msg = new StringBuilder("Failed to auto-abandon inactive change(s):"); for (ChangeControl change : changes) { msg.append(" ").append(change.getId().get()); } msg.append("."); log.error(msg.toString(), e); } } log.info(String.format("Auto-Abandoned %d of %d changes.", count, changesToAbandon.size())); } catch (QueryParseException | OrmException e) { log.error("Failed to query inactive open changes for auto-abandoning.", e); } }
From source file:com.facebook.presto.sql.planner.iterative.rule.PushTableWriteThroughUnion.java
@Override public Result apply(TableWriterNode tableWriterNode, Captures captures, Context context) { UnionNode unionNode = captures.get(CHILD); ImmutableList.Builder<PlanNode> rewrittenSources = ImmutableList.builder(); ImmutableListMultimap.Builder<Symbol, Symbol> mappings = ImmutableListMultimap.builder(); for (int i = 0; i < unionNode.getSources().size(); i++) { int index = i; ImmutableList.Builder<Symbol> newSymbols = ImmutableList.builder(); for (Symbol outputSymbol : tableWriterNode.getOutputSymbols()) { Symbol newSymbol = context.getSymbolAllocator().newSymbol(outputSymbol); newSymbols.add(newSymbol);/*w w w. ja va 2 s.c om*/ mappings.put(outputSymbol, newSymbol); } rewrittenSources.add(new TableWriterNode(context.getIdAllocator().getNextId(), unionNode.getSources().get(index), tableWriterNode.getTarget(), tableWriterNode.getColumns().stream() .map(column -> unionNode.getSymbolMapping().get(column).get(index)) .collect(toImmutableList()), tableWriterNode.getColumnNames(), newSymbols.build(), tableWriterNode.getPartitioningScheme())); } return Result.ofPlanNode(new UnionNode(context.getIdAllocator().getNextId(), rewrittenSources.build(), mappings.build(), ImmutableList.copyOf(mappings.build().keySet()))); }