Example usage for com.google.common.collect ImmutableSortedMap.Builder put

List of usage examples for com.google.common.collect ImmutableSortedMap.Builder put

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableSortedMap.Builder put.

Prototype

V put(K key, V value);

Source Link

Document

Associates the specified value with the specified key in this map (optional operation).

Usage

From source file:com.facebook.buck.thrift.ThriftCxxEnhancer.java

@Override
public BuildRule createBuildRule(TargetGraph targetGraph, BuildRuleParams params, BuildRuleResolver resolver,
        ThriftConstructorArg args, ImmutableMap<String, ThriftSource> sources,
        ImmutableSortedSet<BuildRule> deps) throws NoSuchBuildTargetException {

    SourcePathResolver pathResolver = new SourcePathResolver(new SourcePathRuleFinder(resolver));

    // Grab all the sources and headers generated from the passed in thrift sources.
    CxxHeadersAndSources spec = getThriftHeaderSourceSpec(params, args, sources);

    // Add all the passed in language-specific thrift deps, and any C/C++ specific deps
    // passed in via the constructor arg.
    ImmutableSortedSet<BuildRule> allDeps = ImmutableSortedSet.<BuildRule>naturalOrder().addAll(deps)
            .addAll(resolver.getAllRules((cpp2 ? args.cpp2Deps : args.cppDeps))).build();

    // Create language specific build params by using the deps we formed above.
    BuildRuleParams langParams = params.copyWithDeps(Suppliers.ofInstance(ImmutableSortedSet.of()),
            Suppliers.ofInstance(allDeps));

    // Merge the thrift generated headers with the ones passed in via the description.
    ImmutableSortedMap.Builder<String, SourcePath> headersBuilder = ImmutableSortedMap.naturalOrder();
    headersBuilder.putAll(spec.getHeaders());
    if (args.cppExportedHeaders.getNamedSources().isPresent()) {
        headersBuilder.putAll(args.cppExportedHeaders.getNamedSources().get());
    } else {/* ww w . java 2 s.c om*/
        headersBuilder.putAll(pathResolver.getSourcePathNames(params.getBuildTarget(), "cpp_headers",
                args.cppExportedHeaders.getUnnamedSources().get()));
    }
    ImmutableSortedMap<String, SourcePath> headers = headersBuilder.build();

    // Merge the thrift generated sources with the ones passed in via the description.
    ImmutableSortedMap.Builder<String, SourceWithFlags> srcsBuilder = ImmutableSortedMap.naturalOrder();
    srcsBuilder.putAll(spec.getSources());
    if (args.cppSrcs.getNamedSources().isPresent()) {
        srcsBuilder.putAll(args.cppSrcs.getNamedSources().get());
    } else {
        for (SourceWithFlags sourceWithFlags : args.cppSrcs.getUnnamedSources().get()) {
            srcsBuilder.put(
                    pathResolver.getSourcePathName(params.getBuildTarget(), sourceWithFlags.getSourcePath()),
                    sourceWithFlags);
        }
    }
    ImmutableSortedMap<String, SourceWithFlags> srcs = srcsBuilder.build();

    // Construct the C/C++ library description argument to pass to the
    CxxLibraryDescription.Arg langArgs = CxxLibraryDescription.createEmptyConstructorArg();
    langArgs.headerNamespace = args.cppHeaderNamespace;
    langArgs.srcs = ImmutableSortedSet.copyOf(srcs.values());
    langArgs.exportedHeaders = SourceList.ofNamedSources(headers);
    langArgs.canBeAsset = Optional.empty();
    langArgs.compilerFlags = cpp2 ? args.cpp2CompilerFlags : args.cppCompilerFlags;

    // Since thrift generated C/C++ code uses lots of templates, just use exported deps throughout.
    langArgs.exportedDeps = FluentIterable.from(allDeps).transform(HasBuildTarget::getBuildTarget)
            .toSortedSet(Ordering.natural());

    return cxxLibraryDescription.createBuildRule(targetGraph, langParams, resolver, langArgs);
}

From source file:com.proofpoint.log.Logging.java

@SuppressWarnings("MethodMayBeStatic")
public Map<String, Level> getAllLevels() {
    ImmutableSortedMap.Builder<String, Level> levels = ImmutableSortedMap.naturalOrder();
    for (String loggerName : Collections.list(LogManager.getLogManager().getLoggerNames())) {
        java.util.logging.Level level = java.util.logging.Logger.getLogger(loggerName).getLevel();
        if (level != null) {
            levels.put(loggerName, fromJulLevel(level));
        }//from   w  w w .  j  ava2  s.co m
    }
    return levels.build();
}

From source file:org.gradle.api.internal.changedetection.rules.InputPropertiesTaskStateChanges.java

public InputPropertiesTaskStateChanges(@Nullable TaskExecution previousExecution,
        TaskExecution currentExecution, TaskInternal task, ValueSnapshotter valueSnapshotter) {
    ImmutableSortedMap<String, ValueSnapshot> previousInputProperties = previousExecution == null
            ? ImmutableSortedMap.<String, ValueSnapshot>of()
            : previousExecution.getInputProperties();
    ImmutableSortedMap.Builder<String, ValueSnapshot> builder = ImmutableSortedMap.naturalOrder();
    removed = new HashSet<String>(previousInputProperties.keySet());
    changed = new HashSet<String>();
    added = new HashSet<String>();
    for (Map.Entry<String, Object> entry : task.getInputs().getProperties().entrySet()) {
        String propertyName = entry.getKey();
        Object value = entry.getValue();
        try {/* w  w w  . j  a va2s .  c om*/
            removed.remove(propertyName);
            ValueSnapshot previousSnapshot = previousInputProperties.get(propertyName);
            if (previousSnapshot == null) {
                added.add(propertyName);
                builder.put(propertyName, valueSnapshotter.snapshot(value));
            } else {
                ValueSnapshot newSnapshot = valueSnapshotter.snapshot(value, previousSnapshot);
                if (newSnapshot == previousSnapshot) {
                    builder.put(propertyName, previousSnapshot);
                } else {
                    changed.add(propertyName);
                    builder.put(propertyName, valueSnapshotter.snapshot(value));
                }
            }
        } catch (Exception e) {
            throw new GradleException(String.format(
                    "Unable to store input properties for %s. Property '%s' with value '%s' cannot be serialized.",
                    task, propertyName, value), e);
        }
    }

    currentExecution.setInputProperties(builder.build());
    this.task = task;
}

From source file:com.facebook.buck.maven.Resolver.java

private ImmutableMap<String, Artifact> getRunTimeTransitiveDeps(Iterable<Dependency> mavenCoords)
        throws RepositoryException {

    CollectRequest collectRequest = new CollectRequest();
    collectRequest.setRequestContext(JavaScopes.RUNTIME);
    collectRequest.setRepositories(repos);

    for (Dependency dep : mavenCoords) {
        collectRequest.addDependency(dep);
    }/*  ww  w  .j  ava2s . c o  m*/

    DependencyFilter filter = DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME);
    DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, filter);

    DependencyResult dependencyResult = repoSys.resolveDependencies(session, dependencyRequest);

    ImmutableSortedMap.Builder<String, Artifact> knownDeps = ImmutableSortedMap.naturalOrder();
    for (ArtifactResult artifactResult : dependencyResult.getArtifactResults()) {
        Artifact node = artifactResult.getArtifact();
        knownDeps.put(buildKey(node), node);
    }
    return knownDeps.build();
}

From source file:gobblin.metrics.InnerMetricContext.java

@SuppressWarnings("unchecked")
private <T extends com.codahale.metrics.Metric> SortedMap<String, T> getSimplyNamedMetrics(Class<T> mClass,
        Optional<MetricFilter> filter) {
    ImmutableSortedMap.Builder<String, T> builder = ImmutableSortedMap.naturalOrder();
    for (Map.Entry<String, InnerMetric> entry : this.contextAwareMetrics.entrySet()) {
        if (mClass.isInstance(entry.getValue())) {
            if (filter.isPresent()
                    && !filter.get().matches(entry.getKey(), entry.getValue().getContextAwareMetric())) {
                continue;
            }//from www.  j a v a2 s .c  o m
            builder.put(entry.getKey(), (T) entry.getValue());
        }
    }
    return builder.build();
}

From source file:com.google.gerrit.server.notedb.ChangeNotes.java

public ImmutableSortedMap<PatchSet.Id, PatchSet> getPatchSets() {
    if (patchSets == null) {
        ImmutableSortedMap.Builder<PatchSet.Id, PatchSet> b = ImmutableSortedMap
                .orderedBy(comparing(PatchSet.Id::get));
        for (Map.Entry<PatchSet.Id, PatchSet> e : state.patchSets()) {
            b.put(e.getKey(), new PatchSet(e.getValue()));
        }/*from w  ww .j  a va 2 s  .com*/
        patchSets = b.build();
    }
    return patchSets;
}

From source file:com.facebook.buck.features.haskell.HaskellDescriptionUtils.java

/**
 * Create a Haskell compile rule that compiles all the given haskell sources in one step and pulls
 * interface files from all transitive haskell dependencies.
 *///ww w. j a  v a 2  s .  co m
private static HaskellCompileRule createCompileRule(BuildTarget target, ProjectFilesystem projectFilesystem,
        BuildRuleParams baseParams, ActionGraphBuilder graphBuilder, SourcePathRuleFinder ruleFinder,
        ImmutableSet<BuildRule> deps, HaskellPlatform platform, Linker.LinkableDepType depType,
        boolean hsProfile, Optional<String> main, Optional<HaskellPackageInfo> packageInfo,
        ImmutableList<String> flags, HaskellSources sources) {

    CxxPlatform cxxPlatform = platform.getCxxPlatform();

    Map<BuildTarget, ImmutableList<String>> depFlags = new TreeMap<>();
    Map<BuildTarget, ImmutableList<SourcePath>> depIncludes = new TreeMap<>();
    ImmutableSortedMap.Builder<String, HaskellPackage> exposedPackagesBuilder = ImmutableSortedMap
            .naturalOrder();
    ImmutableSortedMap.Builder<String, HaskellPackage> packagesBuilder = ImmutableSortedMap.naturalOrder();
    new AbstractBreadthFirstTraversal<BuildRule>(deps) {
        private final ImmutableSet<BuildRule> empty = ImmutableSet.of();

        @Override
        public Iterable<BuildRule> visit(BuildRule rule) {
            Iterable<BuildRule> ruleDeps = empty;
            if (rule instanceof HaskellCompileDep) {
                HaskellCompileDep haskellCompileDep = (HaskellCompileDep) rule;
                ruleDeps = haskellCompileDep.getCompileDeps(platform);
                HaskellCompileInput compileInput = haskellCompileDep.getCompileInput(platform, depType,
                        hsProfile);
                depFlags.put(rule.getBuildTarget(), compileInput.getFlags());
                depIncludes.put(rule.getBuildTarget(), compileInput.getIncludes());

                // We add packages from first-order deps as expose modules, and transitively included
                // packages as hidden ones.
                boolean firstOrderDep = deps.contains(rule);
                for (HaskellPackage pkg : compileInput.getPackages()) {
                    if (firstOrderDep) {
                        exposedPackagesBuilder.put(pkg.getInfo().getIdentifier(), pkg);
                    } else {
                        packagesBuilder.put(pkg.getInfo().getIdentifier(), pkg);
                    }
                }
            }
            return ruleDeps;
        }
    }.start();

    Collection<CxxPreprocessorInput> cxxPreprocessorInputs = CxxPreprocessables
            .getTransitiveCxxPreprocessorInput(cxxPlatform, graphBuilder, deps);
    ExplicitCxxToolFlags.Builder toolFlagsBuilder = CxxToolFlags.explicitBuilder();
    PreprocessorFlags.Builder ppFlagsBuilder = PreprocessorFlags.builder();
    toolFlagsBuilder.setPlatformFlags(
            StringArg.from(CxxSourceTypes.getPlatformPreprocessFlags(cxxPlatform, CxxSource.Type.C)));
    for (CxxPreprocessorInput input : cxxPreprocessorInputs) {
        ppFlagsBuilder.addAllIncludes(input.getIncludes());
        ppFlagsBuilder.addAllFrameworkPaths(input.getFrameworks());
        toolFlagsBuilder.addAllRuleFlags(input.getPreprocessorFlags().get(CxxSource.Type.C));
    }
    ppFlagsBuilder.setOtherFlags(toolFlagsBuilder.build());
    PreprocessorFlags ppFlags = ppFlagsBuilder.build();

    ImmutableList<String> compileFlags = ImmutableList.<String>builder().addAll(platform.getCompilerFlags())
            .addAll(flags).addAll(Iterables.concat(depFlags.values())).build();

    ImmutableList<SourcePath> includes = ImmutableList.copyOf(Iterables.concat(depIncludes.values()));

    ImmutableSortedMap<String, HaskellPackage> exposedPackages = exposedPackagesBuilder.build();
    ImmutableSortedMap<String, HaskellPackage> packages = packagesBuilder.build();

    return HaskellCompileRule.from(target, projectFilesystem, baseParams, ruleFinder,
            platform.getCompiler().resolve(graphBuilder), platform.getHaskellVersion(), compileFlags, ppFlags,
            cxxPlatform, depType == Linker.LinkableDepType.STATIC ? PicType.PDC : PicType.PIC, hsProfile, main,
            packageInfo, includes, exposedPackages, packages, sources,
            CxxSourceTypes.getPreprocessor(cxxPlatform, CxxSource.Type.C).resolve(graphBuilder));
}

From source file:com.facebook.buck.haskell.HaskellGhciDescription.java

@Override
public BuildRule createBuildRule(TargetGraph targetGraph, BuildTarget buildTarget,
        final ProjectFilesystem projectFilesystem, BuildRuleParams params, final BuildRuleResolver resolver,
        final CellPathResolver cellPathResolver, HaskellGhciDescriptionArg args)
        throws NoSuchBuildTargetException {

    CxxPlatform cxxPlatform = cxxPlatforms.getValue(buildTarget).orElse(defaultCxxPlatform);
    SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(resolver);
    SourcePathResolver pathResolver = DefaultSourcePathResolver.from(ruleFinder);

    ImmutableSet.Builder<BuildRule> depsBuilder = ImmutableSet.builder();
    depsBuilder.addAll(CxxDeps.builder().addDeps(args.getDeps()).addPlatformDeps(args.getPlatformDeps()).build()
            .get(resolver, cxxPlatform));
    ImmutableSet<BuildRule> deps = depsBuilder.build();

    ImmutableSet.Builder<HaskellPackage> haskellPackages = ImmutableSet.builder();
    ImmutableSet.Builder<HaskellPackage> prebuiltHaskellPackages = ImmutableSet.builder();
    ImmutableSet.Builder<HaskellPackage> firstOrderHaskellPackages = ImmutableSet.builder();
    AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException> haskellVisitor = new AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException>(
            deps) {/*from  ww  w .  jav  a 2 s  . c  o m*/
        @Override
        public ImmutableSet<BuildRule> visit(BuildRule rule) throws NoSuchBuildTargetException {
            ImmutableSet.Builder<BuildRule> traverse = ImmutableSet.builder();
            if (rule instanceof HaskellLibrary || rule instanceof PrebuiltHaskellLibrary) {
                HaskellCompileInput ci = ((HaskellCompileDep) rule).getCompileInput(cxxPlatform,
                        Linker.LinkableDepType.STATIC, args.getEnableProfiling());

                if (params.getBuildDeps().contains(rule)) {
                    firstOrderHaskellPackages.addAll(ci.getPackages());
                }

                if (rule instanceof HaskellLibrary) {
                    haskellPackages.addAll(ci.getPackages());
                    traverse.addAll(rule.getBuildDeps());
                } else if (rule instanceof PrebuiltHaskellLibrary) {
                    prebuiltHaskellPackages.addAll(ci.getPackages());
                    traverse.addAll(rule.getBuildDeps());
                }
            }

            return traverse.build();
        }
    };
    haskellVisitor.start();

    ImmutableSet.Builder<NativeLinkable> nativeLinkables = ImmutableSet.builder();
    AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException> cxxVisitor = new AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException>(
            deps) {
        @Override
        public ImmutableSet<BuildRule> visit(BuildRule rule) throws NoSuchBuildTargetException {
            ImmutableSet.Builder<BuildRule> traverse = ImmutableSet.builder();
            if (rule instanceof CxxLibrary) {
                nativeLinkables.add((NativeLinkable) rule);
            } else if (rule instanceof PrebuiltCxxLibrary) {
                nativeLinkables.add((NativeLinkable) rule);
            } else if (rule instanceof HaskellLibrary || rule instanceof PrebuiltHaskellLibrary) {
                for (NativeLinkable nl : ((NativeLinkable) rule)
                        .getNativeLinkableExportedDepsForPlatform(cxxPlatform)) {
                    traverse.add((BuildRule) nl);
                }
            }

            return traverse.build();
        }
    };
    cxxVisitor.start();

    ImmutableList<NativeLinkable> sortedNativeLinkables = getSortedNativeLinkables(cxxPlatform,
            nativeLinkables.build());

    BuildRule omnibusSharedObject = requireOmnibusSharedObject(buildTarget, projectFilesystem, resolver,
            cxxPlatform, sortedNativeLinkables);

    ImmutableSortedMap.Builder<String, SourcePath> solibs = ImmutableSortedMap.naturalOrder();
    for (NativeLinkable nativeLinkable : sortedNativeLinkables) {
        if (isPrebuiltSO(nativeLinkable, cxxPlatform)) {
            ImmutableMap<String, SourcePath> sharedObjects = nativeLinkable.getSharedLibraries(cxxPlatform);
            for (Map.Entry<String, SourcePath> ent : sharedObjects.entrySet()) {
                if (ent.getValue() instanceof PathSourcePath) {
                    solibs.put(ent.getKey(), ent.getValue());
                }
            }
        }
    }

    HaskellSources srcs = HaskellSources.from(buildTarget, resolver, pathResolver, ruleFinder, cxxPlatform,
            "srcs", args.getSrcs());

    return resolver.addToIndex(HaskellGhciRule.from(buildTarget, projectFilesystem, params, resolver, srcs,
            args.getCompilerFlags(), args.getGhciBinDep(), args.getGhciInit(), omnibusSharedObject,
            solibs.build(), firstOrderHaskellPackages.build(), haskellPackages.build(),
            prebuiltHaskellPackages.build(), args.getEnableProfiling(), haskellConfig.getGhciScriptTemplate(),
            haskellConfig.getGhciBinutils(), haskellConfig.getGhciGhc(), haskellConfig.getGhciLib(),
            haskellConfig.getGhciCxx(), haskellConfig.getGhciCc(), haskellConfig.getGhciCpp()));
}

From source file:kr.co.bitnine.octopus.engine.calcite.CachingCalciteSchema.java

protected void addImplicitTablesBasedOnNullaryFunctionsToBuilder(
        ImmutableSortedMap.Builder<String, Table> builder) {
    ImmutableSortedMap<String, Table> explicitTables = builder.build();

    for (String s : implicitFunctionCache.get(System.currentTimeMillis())) {
        // explicit table wins.
        if (explicitTables.containsKey(s)) {
            continue;
        }/*  w ww .java  2  s.com*/
        for (Function function : getSchema().getFunctions(s)) {
            if (function instanceof TableMacro && function.getParameters().isEmpty()) {
                final Table table = ((TableMacro) function).apply(ImmutableList.of());
                builder.put(s, table);
            }
        }
    }
}

From source file:org.thelq.stackexchange.dbimport.Controller.java

public void initMetadataMap(SessionFactory sessionFactory) {
    ImmutableSortedMap.Builder<String, ImmutableMap<String, Type>> metadataMapBuilder = ImmutableSortedMap
            .orderedBy(String.CASE_INSENSITIVE_ORDER);
    for (Map.Entry<String, ClassMetadata> curEntry : sessionFactory.getAllClassMetadata().entrySet()) {
        ClassMetadata tableDataRaw = curEntry.getValue();
        ImmutableMap.Builder<String, Type> propertiesBuilder = ImmutableMap.builder();
        propertiesBuilder.put(tableDataRaw.getIdentifierPropertyName(), tableDataRaw.getIdentifierType());
        for (String curPropertyName : tableDataRaw.getPropertyNames())
            propertiesBuilder.put(curPropertyName, tableDataRaw.getPropertyType(curPropertyName));
        metadataMapBuilder.put(curEntry.getKey(), propertiesBuilder.build());
    }/*from  www . j  a  v  a2  s .  c  om*/
    metadataMap = metadataMapBuilder.build();
}