Example usage for com.google.common.collect ImmutableMap entrySet

List of usage examples for com.google.common.collect ImmutableMap entrySet

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableMap entrySet.

Prototype

public final ImmutableSet<Entry<K, V>> entrySet() 

Source Link

Usage

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);
}