List of usage examples for com.google.common.collect ImmutableMap entrySet
public final ImmutableSet<Entry<K, V>> entrySet()
From source file:org.androidtransfuse.model.MethodDescriptor.java
public MethodDescriptor(JMethod method, ASTMethod astMethod, ImmutableMap<ASTParameter, TypedExpression> parameterMap, ImmutableMap<ASTType, TypedExpression> typeMap) { this.method = method; this.astMethod = astMethod; this.parameterMap = parameterMap; this.blocks.push(method.body()); ImmutableMap.Builder<ASTType, TypedExpression> queryBuilder = ImmutableMap.builder(); Set<ASTType> duplicateTypes = new HashSet<ASTType>(); duplicateTypes.addAll(typeMap.keySet()); queryBuilder.putAll(typeMap);/*ww w.j ava 2s .c om*/ for (Map.Entry<ASTParameter, TypedExpression> parameterEntry : parameterMap.entrySet()) { if (!duplicateTypes.contains(parameterEntry.getKey().getASTType())) { queryBuilder.put(parameterEntry.getKey().getASTType(), parameterEntry.getValue()); duplicateTypes.add(parameterEntry.getKey().getASTType()); } } this.querymap = queryBuilder.build(); }
From source file:org.spongepowered.common.mixin.core.block.state.MixinIBlockState.java
@SuppressWarnings("unchecked") @Override/*from ww w.j ava 2 s.c o m*/ default String getId() { StringBuilder builder = new StringBuilder(); builder.append(((BlockType) getBlock()).getId()); final ImmutableMap<IProperty<?>, Comparable<?>> properties = (ImmutableMap<IProperty<?>, Comparable<?>>) (ImmutableMap<?, ?>) this .getProperties(); if (!properties.isEmpty()) { builder.append('['); Joiner joiner = Joiner.on(','); List<String> propertyValues = new ArrayList<>(); for (Map.Entry<IProperty<?>, Comparable<?>> entry : properties.entrySet()) { propertyValues.add(entry.getKey().getName() + "=" + entry.getValue()); } builder.append(joiner.join(propertyValues)); builder.append(']'); } return builder.toString(); }
From source file:com.google.idea.blaze.java.libraries.JarCache.java
private void refresh(@Nullable BlazeContext context, boolean removeMissingFiles) { if (!enabled || sourceFileToCacheKey == null) { return;/* w w w. j a v a 2s . co m*/ } // Ensure the cache dir exists if (!cacheDir.exists()) { if (!cacheDir.mkdirs()) { LOG.error("Could not create jar cache directory"); return; } } // Discover state of source jars ImmutableMap<File, Long> sourceFileTimestamps = FileDiffer.readFileState(sourceFileToCacheKey.keySet()); if (sourceFileTimestamps == null) { return; } ImmutableMap.Builder<String, Long> sourceFileCacheKeyToTimestamp = ImmutableMap.builder(); for (Map.Entry<File, Long> entry : sourceFileTimestamps.entrySet()) { String cacheKey = sourceFileToCacheKey.get(entry.getKey()); sourceFileCacheKeyToTimestamp.put(cacheKey, entry.getValue()); } // Discover current on-disk cache state File[] cacheFiles = cacheDir.listFiles(); assert cacheFiles != null; ImmutableMap<File, Long> cacheFileTimestamps = FileDiffer.readFileState(Lists.newArrayList(cacheFiles)); if (cacheFileTimestamps == null) { return; } ImmutableMap.Builder<String, Long> cachedFileCacheKeyToTimestamp = ImmutableMap.builder(); for (Map.Entry<File, Long> entry : cacheFileTimestamps.entrySet()) { String cacheKey = entry.getKey().getName(); // Cache key == file name cachedFileCacheKeyToTimestamp.put(cacheKey, entry.getValue()); } List<String> updatedFiles = Lists.newArrayList(); List<String> removedFiles = Lists.newArrayList(); FileDiffer.diffState(cachedFileCacheKeyToTimestamp.build(), sourceFileCacheKeyToTimestamp.build(), updatedFiles, removedFiles); ListeningExecutorService executor = FetchExecutor.EXECUTOR; List<ListenableFuture<?>> futures = Lists.newArrayList(); Map<String, File> cacheKeyToSourceFile = sourceFileToCacheKey.inverse(); for (String cacheKey : updatedFiles) { File sourceFile = cacheKeyToSourceFile.get(cacheKey); File cacheFile = cacheFileForKey(cacheKey); futures.add(executor.submit(() -> { try { Files.copy(Paths.get(sourceFile.getPath()), Paths.get(cacheFile.getPath()), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES); } catch (IOException e) { LOG.warn(e); } })); } if (removeMissingFiles) { for (String cacheKey : removedFiles) { File cacheFile = cacheFileForKey(cacheKey); futures.add(executor.submit(() -> { try { Files.deleteIfExists(Paths.get(cacheFile.getPath())); } catch (IOException e) { LOG.warn(e); } })); } } try { Futures.allAsList(futures).get(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); LOG.warn(e); } catch (ExecutionException e) { LOG.error(e); } if (context != null && updatedFiles.size() > 0) { context.output(PrintOutput.log(String.format("Copied %d jars", updatedFiles.size()))); } if (context != null && removedFiles.size() > 0 && removeMissingFiles) { context.output(PrintOutput.log(String.format("Removed %d jars", removedFiles.size()))); } if (context != null) { try { File[] finalCacheFiles = cacheDir.listFiles(); assert finalCacheFiles != null; ImmutableMap<File, Long> cacheFileSizes = FileSizeScanner .readFilesizes(Lists.newArrayList(finalCacheFiles)); Long total = cacheFileSizes.values().stream().reduce((size1, size2) -> size1 + size2).orElse(0L); context.output(PrintOutput.log(String.format("Total Jar Cache size: %d kB (%d files)", total / 1024, finalCacheFiles.length))); } catch (Exception e) { LOG.warn("Could not determine cache size", e); } } }
From source file:com.android.builder.shrinker.Shrinker.java
private void setCounters(ImmutableMap<ShrinkType, KeepRules> allKeepRules) { for (Map.Entry<ShrinkType, KeepRules> entry : allKeepRules.entrySet()) { ShrinkType shrinkType = entry.getKey(); KeepRules keepRules = entry.getValue(); Map<T, DependencyType> toIncrement = Maps.newHashMap(); for (T klass : mGraph.getAllProgramClasses()) { toIncrement.putAll(keepRules.getSymbolsToKeep(klass, mGraph)); }//w ww . ja v a2s. co m for (Map.Entry<T, DependencyType> toIncrementEntry : toIncrement.entrySet()) { incrementCounter(toIncrementEntry.getKey(), toIncrementEntry.getValue(), shrinkType); } } }
From source file:com.facebook.buck.features.project.intellij.IjProjectTemplateDataPreparer.java
public ImmutableSet<DependencyEntry> getDependencies(IjModule module) { ImmutableMap<IjProjectElement, DependencyType> deps = moduleGraph.getDepsFor(module); IjDependencyListBuilder dependencyListBuilder = new IjDependencyListBuilder(); for (Map.Entry<IjProjectElement, DependencyType> entry : deps.entrySet()) { IjProjectElement element = entry.getKey(); DependencyType dependencyType = entry.getValue(); element.addAsDependency(dependencyType, dependencyListBuilder); }//from w w w . j a va 2s . c o m return dependencyListBuilder.build(); }
From source file:net.hydromatic.tpcds.query.Query.java
public Iterable<Map.Entry<String, Generator>> allArgs() { final String limitString = args.get("_LIMIT").generate(new Random(0)); final int limit = Integer.parseInt(limitString); final Function<String, String> transform = new Function<String, String>() { public String apply(String input) { return String.format(input, limit); }//from ww w . j a v a 2 s . c o m }; final ImmutableMap<String, Generator> limits = ImmutableMap.of("_LIMITA", Generators.transform(BUILTIN_ARGS.get("__LIMITA"), transform), "_LIMITB", Generators.transform(BUILTIN_ARGS.get("__LIMITB"), transform), "_LIMITC", Generators.transform(BUILTIN_ARGS.get("__LIMITC"), transform)); return Iterables.concat(BUILTIN_ARGS.entrySet(), limits.entrySet(), args.entrySet()); }
From source file:com.google.devtools.build.lib.analysis.CommandHelper.java
/** * Creates a {@link CommandHelper}.//www .j a va2 s . c o m * * @param tools resolves set of tools into set of executable binaries. Populates manifests, * remoteRunfiles and label map where required. * @param labelMap adds files to set of known files of label. Used for resolving $(location) * variables. */ public CommandHelper(RuleContext ruleContext, Iterable<? extends TransitiveInfoCollection> tools, ImmutableMap<Label, Iterable<Artifact>> labelMap) { this.ruleContext = ruleContext; ImmutableList.Builder<Artifact> resolvedToolsBuilder = ImmutableList.builder(); ImmutableMap.Builder<PathFragment, Artifact> remoteRunfileManifestBuilder = ImmutableMap.builder(); Map<Label, Collection<Artifact>> tempLabelMap = new HashMap<>(); for (Map.Entry<Label, Iterable<Artifact>> entry : labelMap.entrySet()) { Iterables.addAll(mapGet(tempLabelMap, entry.getKey()), entry.getValue()); } for (TransitiveInfoCollection dep : tools) { // (Note: host configuration) Label label = AliasProvider.getDependencyLabel(dep); FilesToRunProvider tool = dep.getProvider(FilesToRunProvider.class); if (tool == null) { continue; } Collection<Artifact> files = tool.getFilesToRun(); resolvedToolsBuilder.addAll(files); Artifact executableArtifact = tool.getExecutable(); // If the label has an executable artifact add that to the multimaps. if (executableArtifact != null) { mapGet(tempLabelMap, label).add(executableArtifact); // Also send the runfiles when running remotely. Artifact runfilesManifest = tool.getRunfilesManifest(); if (runfilesManifest != null) { remoteRunfileManifestBuilder .put(BaseSpawn.runfilesForFragment(executableArtifact.getExecPath()), runfilesManifest); } } else { // Map all depArtifacts to the respective label using the multimaps. mapGet(tempLabelMap, label).addAll(files); } } this.resolvedTools = SkylarkList.createImmutable(resolvedToolsBuilder.build()); this.remoteRunfileManifestMap = SkylarkDict.copyOf(null, remoteRunfileManifestBuilder.build()); ImmutableMap.Builder<Label, ImmutableCollection<Artifact>> labelMapBuilder = ImmutableMap.builder(); for (Entry<Label, Collection<Artifact>> entry : tempLabelMap.entrySet()) { labelMapBuilder.put(entry.getKey(), ImmutableList.copyOf(entry.getValue())); } this.labelMap = SkylarkDict.copyOf(null, labelMapBuilder.build()); }
From source file:org.codice.ddf.catalog.sourcepoller.Poller.java
/** * For each of the {@code itemsToPoll}, uses the {@code completionService} to kick off the process * to load the new value. If unable to start the process, an exception is added to {@code * gatheredExceptions}.// www. j av a 2 s .c o m * * @return the number of processes started */ private int startLoads(final long timeout, final TimeUnit timeoutTimeUnit, final ImmutableMap<K, Callable<V>> itemsToPoll, final CompletionService<Pair<K, Commitable>> completionService, final Map<K, Throwable> gatheredExceptions) { int startedLoadsCount = 0; for (final Entry<K, Callable<V>> entry : itemsToPoll.entrySet()) { final K key1 = entry.getKey(); final Callable<V> loader = entry.getValue(); try { completionService .submit(() -> new ImmutablePair<>(key1, load(key1, loader, timeout, timeoutTimeUnit))); startedLoadsCount++; } catch (final RuntimeException e) { LOGGER.debug("Unable to start the load task for {}", key1, e); gatheredExceptions.put(key1, e); } } return startedLoadsCount; }
From source file:org.onosproject.segmentrouting.cli.LinkStateCommand.java
private void printLinkState(ImmutableMap<Link, Boolean> seenLinks, ImmutableMap<DeviceId, Set<PortNumber>> downedPortState) { List<Link> a = Lists.newArrayList(); a.addAll(seenLinks.keySet());/*ww w.j av a2 s . c o m*/ a.sort(new CompLinks()); StringBuilder slbldr = new StringBuilder(); slbldr.append("\n Seen Links: "); for (int i = 0; i < a.size(); i++) { slbldr.append("\n " + (seenLinks.get(a.get(i)) == Boolean.TRUE ? " up : " : "down : ")); slbldr.append(a.get(i).src() + " --> " + a.get(i).dst()); } print(FORMAT_MAPPING, slbldr.toString()); StringBuilder dpbldr = new StringBuilder(); dpbldr.append("\n\n Administratively Disabled Ports: "); downedPortState.entrySet().forEach(entry -> dpbldr.append("\n " + entry.getKey() + entry.getValue())); print(FORMAT_MAPPING, dpbldr.toString()); }
From source file:com.facebook.presto.connector.jmx.JmxRecordSetProvider.java
@Override public RecordSet getRecordSet(ConnectorSession session, ConnectorSplit split, List<? extends ColumnHandle> columns) { JmxTableHandle tableHandle = checkType(split, JmxSplit.class, "split").getTableHandle(); requireNonNull(columns, "columns is null"); checkArgument(!columns.isEmpty(), "must provide at least one column"); ImmutableMap.Builder<String, Type> builder = ImmutableMap.builder(); for (ColumnHandle column : columns) { JmxColumnHandle jmxColumnHandle = checkType(column, JmxColumnHandle.class, "column"); builder.put(jmxColumnHandle.getColumnName(), jmxColumnHandle.getColumnType()); }//ww w .j av a2 s.c om ImmutableMap<String, Type> columnTypes = builder.build(); List<List<Object>> rows; try { Map<String, Object> attributes = getAttributes(columnTypes.keySet(), tableHandle); List<Object> row = new ArrayList<>(); // NOTE: data must be produced in the order of the columns parameter. This code relies on the // fact that columnTypes is an ImmutableMap which is an order preserving LinkedHashMap under // the covers. for (Entry<String, Type> entry : columnTypes.entrySet()) { if (entry.getKey().equals("node")) { row.add(nodeId); } else { Object value = attributes.get(entry.getKey()); if (value == null) { row.add(null); } else { Class<?> javaType = entry.getValue().getJavaType(); if (javaType == boolean.class) { if (value instanceof Boolean) { row.add(value); } else { // mbeans can lie about types row.add(null); } } else if (javaType == long.class) { if (value instanceof Number) { row.add(((Number) value).longValue()); } else { // mbeans can lie about types row.add(null); } } else if (javaType == double.class) { if (value instanceof Number) { row.add(((Number) value).doubleValue()); } else { // mbeans can lie about types row.add(null); } } else if (javaType == Slice.class) { if (value.getClass().isArray()) { // return a string representation of the array if (value.getClass().getComponentType() == boolean.class) { row.add(Arrays.toString((boolean[]) value)); } else if (value.getClass().getComponentType() == byte.class) { row.add(Arrays.toString((byte[]) value)); } else if (value.getClass().getComponentType() == char.class) { row.add(Arrays.toString((char[]) value)); } else if (value.getClass().getComponentType() == double.class) { row.add(Arrays.toString((double[]) value)); } else if (value.getClass().getComponentType() == float.class) { row.add(Arrays.toString((float[]) value)); } else if (value.getClass().getComponentType() == int.class) { row.add(Arrays.toString((int[]) value)); } else if (value.getClass().getComponentType() == long.class) { row.add(Arrays.toString((long[]) value)); } else if (value.getClass().getComponentType() == short.class) { row.add(Arrays.toString((short[]) value)); } else { row.add(Arrays.toString((Object[]) value)); } } else { row.add(value.toString()); } } } } } rows = ImmutableList.of(row); } catch (JMException e) { rows = ImmutableList.of(); } return new InMemoryRecordSet(columnTypes.values(), rows); }