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

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

Introduction

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

Prototype

int size();

Source Link

Document

Returns the number of key-value mappings in this map.

Usage

From source file:com.facebook.buck.skylark.parser.SkylarkProjectBuildFileParser.java

/** @return The parsed build rules defined in {@code buildFile}. */
private ParseResult parseBuildRules(Path buildFile)
        throws IOException, BuildFileParseException, InterruptedException {
    com.google.devtools.build.lib.vfs.Path buildFilePath = fileSystem.getPath(buildFile.toString());

    String basePath = getBasePath(buildFile);
    Label containingLabel = createContainingLabel(basePath);
    ImplicitlyLoadedExtension implicitLoad = loadImplicitExtension(basePath, containingLabel);

    BuildFileAST buildFileAst = parseBuildFile(buildFilePath, containingLabel);
    CachingGlobber globber = newGlobber(buildFile);
    PackageContext packageContext = createPackageContext(basePath, globber, implicitLoad.getLoadedSymbols());
    ParseContext parseContext = new ParseContext(packageContext);
    try (Mutability mutability = Mutability.create("parsing " + buildFile)) {
        EnvironmentData envData = createBuildFileEvaluationEnvironment(buildFilePath, containingLabel,
                buildFileAst, mutability, parseContext, implicitLoad.getExtensionData());
        boolean exec = buildFileAst.exec(envData.getEnvironment(), eventHandler);
        if (!exec) {
            throw BuildFileParseException.createForUnknownParseError("Cannot evaluate build file " + buildFile);
        }//from  www.  j av  a  2 s .  c om
        ImmutableMap<String, ImmutableMap<String, Object>> rules = parseContext.getRecordedRules();
        if (LOG.isVerboseEnabled()) {
            LOG.verbose("Got rules: %s", rules.values());
        }
        LOG.verbose("Parsed %d rules from %s", rules.size(), buildFile);
        ImmutableList.Builder<String> loadedPaths = ImmutableList
                .builderWithExpectedSize(envData.getLoadedPaths().size() + 1);
        loadedPaths.add(buildFilePath.toString());
        loadedPaths.addAll(envData.getLoadedPaths());
        return ParseResult.of(rules, loadedPaths.build(), parseContext.getAccessedConfigurationOptions(),
                globber.createGlobManifest());
    }
}

From source file:com.facebook.buck.versions.VersionedTargetGraphBuilder.java

/**
 * Get/cache the transitive version info for this node.
 *//* w w w . ja  v a2s  .c  o  m*/
private VersionInfo getVersionInfo(TargetNode<?, ?> node) {
    VersionInfo info = this.versionInfo.get(node.getBuildTarget());
    if (info != null) {
        return info;
    }

    Map<BuildTarget, ImmutableSet<Version>> versionDomain = new HashMap<>();

    Optional<TargetNode<VersionedAliasDescription.Arg, ?>> versionedNode = TargetGraphVersionTransformations
            .getVersionedNode(node);
    if (versionedNode.isPresent()) {
        ImmutableMap<Version, BuildTarget> versions = versionedNode.get().getConstructorArg().versions;

        // Merge in the versioned deps and the version domain.
        versionDomain.put(node.getBuildTarget(), versions.keySet());

        // If this version has only one possible choice, there's no need to wrap the constraints from
        // it's transitive deps in an implication constraint.
        if (versions.size() == 1) {
            Map.Entry<Version, BuildTarget> ent = versions.entrySet().iterator().next();
            VersionInfo depInfo = getVersionInfo(getNode(ent.getValue()));
            versionDomain.putAll(depInfo.getVersionDomain());
        } else {

            // For each version choice, inherit the transitive constraints by wrapping them in an
            // implication dependent on the specific version that pulls them in.
            for (Map.Entry<Version, BuildTarget> ent : versions.entrySet()) {
                VersionInfo depInfo = getVersionInfo(getNode(ent.getValue()));
                versionDomain.putAll(depInfo.getVersionDomain());
            }
        }
    } else {

        // Merge in the constraints and version domain/deps from transitive deps.
        for (BuildTarget depTarget : TargetGraphVersionTransformations.getDeps(node)) {
            TargetNode<?, ?> dep = getNode(depTarget);
            if (TargetGraphVersionTransformations.isVersionPropagator(dep)
                    || TargetGraphVersionTransformations.getVersionedNode(dep).isPresent()) {
                VersionInfo depInfo = getVersionInfo(dep);
                versionDomain.putAll(depInfo.getVersionDomain());
            }
        }
    }

    info = VersionInfo.of(versionDomain);

    this.versionInfo.put(node.getBuildTarget(), info);
    return info;
}

From source file:com.lyndir.lhunath.snaplog.model.service.impl.AWSSourceServiceImpl.java

@Override
public void loadMedia(final SSecurityToken token, final S3Source source) throws PermissionDeniedException {

    checkNotNull(source, "Given source must not be null.");
    securityService.assertAccess(Permission.ADMINISTER, token, source);

    // Fetch objects at all qualities from S3
    Map<String, Map<Quality, S3Object>> mediaObjects = Maps.newHashMap();
    for (final Quality quality : Quality.values()) {

        for (final S3Object s3Object : awsService.listObjects(getObjectKey(source, quality))) {

            if (!s3Object.getKey().endsWith(".jpg"))
                // Ignore files that don't have a valid media name.
                continue;

            String mediaName = Iterables.getLast(Splitter.on('/').split(s3Object.getKey()));
            if (mediaName.startsWith("."))
                // Ignore hidden files.
                continue;

            Map<Quality, S3Object> qualityObjects = mediaObjects.get(mediaName);
            if (qualityObjects == null)
                mediaObjects.put(mediaName, qualityObjects = Maps.newHashMap());
            qualityObjects.put(quality, s3Object);
        }/*from w  w  w . ja  va 2 s  . c o m*/
    }

    // Find all existing media that is not contained in the set of media fetched from S3
    // These are media that have been removed from S3 since the last sync; purge them.
    logger.dbg("Looking for media to purge...");
    ImmutableMap.Builder<String, Media> existingMediaBuilder = ImmutableMap.builder();
    for (final Media media : mediaDAO.listMedia(source, true))
        existingMediaBuilder.put(media.getName(), media);
    ImmutableMap<String, Media> existingMedia = existingMediaBuilder.build();
    Set<Media> purgeMedia = Sets.newHashSet(existingMedia.values());
    for (final String mediaName : mediaObjects.keySet()) {
        Media media = existingMedia.get(mediaName);
        if (media != null)
            // This media was found in S3's list of current media data; don't purge it.
            purgeMedia.remove(media);
    }
    logger.dbg("Purging %d / %d media from db", purgeMedia.size(), existingMedia.size());
    mediaDAO.delete(purgeMedia);

    int o = 0;
    for (final Map.Entry<String, Map<Quality, S3Object>> mediaObjectsEntry : mediaObjects.entrySet()) {
        if (o++ % 100 == 0)
            logger.dbg("Loading media %d / %d", ++o, mediaObjects.size());

        String mediaName = mediaObjectsEntry.getKey();
        Map<Quality, S3Object> qualityObjects = mediaObjectsEntry.getValue();

        S3Media media = mediaDAO.findMedia(source, mediaName);
        if (media == null)
            media = new S3Media(source, mediaName);

        // Create/update mediaData for the object.
        for (final Map.Entry<Quality, S3Object> qualityObjectsEntry : qualityObjects.entrySet()) {
            Quality quality = qualityObjectsEntry.getKey();
            S3Object mediaObject = qualityObjectsEntry.getValue();

            setMediaData(media, quality, mediaObject);
        }
    }
}

From source file:com.google.devtools.build.lib.packages.PackageFactory.java

/**
 * Returns a function-value implementing "package" in the specified package
 * context./* w w  w .j  av a 2  s .c om*/
 */
private static BaseFunction newPackageFunction(
        final ImmutableMap<String, PackageArgument<?>> packageArguments) {
    // Flatten the map of argument name of PackageArgument specifier in two co-indexed arrays:
    // one for the argument names, to create a FunctionSignature when we create the function,
    // one of the PackageArgument specifiers, over which to iterate at every function invocation
    // at the same time that we iterate over the function arguments.
    final int numArgs = packageArguments.size();
    final String[] argumentNames = new String[numArgs];
    final PackageArgument<?>[] argumentSpecifiers = new PackageArgument<?>[numArgs];
    int i = 0;
    for (Map.Entry<String, PackageArgument<?>> entry : packageArguments.entrySet()) {
        argumentNames[i] = entry.getKey();
        argumentSpecifiers[i++] = entry.getValue();
    }

    return new BaseFunction("package", FunctionSignature.namedOnly(0, argumentNames)) {
        @Override
        public Object call(Object[] arguments, FuncallExpression ast, Environment env) throws EvalException {

            Package.Builder pkgBuilder = getContext(env, ast).pkgBuilder;

            // Validate parameter list
            if (pkgBuilder.isPackageFunctionUsed()) {
                throw new EvalException(ast.getLocation(), "'package' can only be used once per BUILD file");
            }
            pkgBuilder.setPackageFunctionUsed();

            // Parse params
            boolean foundParameter = false;

            for (int i = 0; i < numArgs; i++) {
                Object value = arguments[i];
                if (value != null) {
                    foundParameter = true;
                    argumentSpecifiers[i].convertAndProcess(pkgBuilder, ast.getLocation(), value);
                }
            }

            if (!foundParameter) {
                throw new EvalException(ast.getLocation(),
                        "at least one argument must be given to the 'package' function");
            }

            return Runtime.NONE;
        }
    };
}

From source file:com.facebook.buck.skylark.parser.SkylarkProjectBuildFileParser.java

/**
 * Retrieves build files requested in {@code buildFile}.
 *
 * @param buildFile The build file to parse.
 * @return The {@link ParseResult} with build rules defined in {@code buildFile}.
 *//*w  ww  .ja  v  a 2 s.c o  m*/
private ParseResult parseBuildFile(Path buildFile)
        throws BuildFileParseException, InterruptedException, IOException {
    ImmutableMap<String, Map<String, Object>> rules = ImmutableMap.of();
    ParseBuckFileEvent.Started startEvent = ParseBuckFileEvent.started(buildFile, this.getClass());
    buckEventBus.post(startEvent);
    ParseResult parseResult;
    try {
        parseResult = parseBuildRules(buildFile);
        rules = parseResult.getRawRules();
    } finally {
        buckEventBus.post(ParseBuckFileEvent.finished(startEvent, rules.size(), 0L, Optional.empty()));
    }
    return parseResult;
}

From source file:se.sics.caracaldb.global.DefaultPolicy.java

private Pair<ExtremeKMap<Double, Address>, ExtremeKMap<Double, Address>> updateAverages(
        ImmutableMap<Address, Stats.Report> stats) {
    ExtremeKMap<Double, Address> xKMemory = new ExtremeKMap<Double, Address>(K);
    ExtremeKMap<Double, Address> xKCpu = new ExtremeKMap<Double, Address>(K);

    double totalCpu = 0.0;
    double totalMemory = 0.0;
    long totalClusterSize = 0;
    for (Stats.Report report : stats.values()) {
        totalCpu += report.cpuUsage;/*from   w  w  w . java2s . c o  m*/
        totalMemory += report.memoryUsage;
        totalClusterSize += report.averageSize * report.numberOfVNodes;
        xKMemory.put(report.memoryUsage, report.atHost);
        xKCpu.put(report.cpuUsage, report.atHost);
    }
    double newMemAvg = totalMemory / ((double) stats.size());
    double newCpuAvg = totalCpu / ((double) stats.size());
    averageHostSize = Stats.floorDiv(totalClusterSize, stats.size());
    // Exponential moving average with coefficient ALPHA
    memoryAvg = ALPHA * newMemAvg + MINUS_ALPHA * memoryAvg;
    cpuAvg = ALPHA * newCpuAvg + MINUS_ALPHA * cpuAvg;
    LOG.info("Current cluster stats: Memory: {}%, CPU: {}% -- Moving: Memory: {}%, CPU: {}%", newMemAvg,
            newCpuAvg, memoryAvg, cpuAvg);
    return Pair.with(xKMemory, xKCpu);
}

From source file:com.google.javascript.jscomp.newtypes.NominalType.java

NominalType instantiateGenerics(Map<String, JSType> newTypeMap) {
    if (newTypeMap.isEmpty()) {
        return this;
    }/*from w ww . j  a va 2s .  c  o m*/
    if (!this.rawType.isGeneric()) {
        return this.rawType.getAsNominalType();
    }
    ImmutableMap.Builder<String, JSType> builder = ImmutableMap.builder();
    ImmutableMap<String, JSType> resultMap;
    if (!typeMap.isEmpty()) {
        for (String oldKey : typeMap.keySet()) {
            builder.put(oldKey, typeMap.get(oldKey).substituteGenerics(newTypeMap));
        }
        resultMap = builder.build();
    } else {
        ImmutableList<String> typeParams = this.rawType.getTypeParameters();
        for (String newKey : typeParams) {
            if (newTypeMap.containsKey(newKey)) {
                builder.put(newKey, newTypeMap.get(newKey));
            }
        }
        resultMap = builder.build();
        if (resultMap.isEmpty()) {
            return this;
        }
        // This works around a bug in FunctionType, because we can't know where
        // FunctionType#receiverType is coming from.
        // If the condition is true, receiverType comes from a method declaration,
        // and we should not create a new type here.
        if (resultMap.size() < typeParams.size()) {
            return this;
        }
    }
    return new NominalType(resultMap, this.rawType);
}

From source file:org.restlet.test.ext.apispark.conversion.swagger.v2_0.Swagger2TestCase.java

private void compareRwadefHeaders(List<Header> savedHeadersList, List<Header> translatedHeadersList) {
    if (assertBothNull(savedHeadersList, translatedHeadersList)) {
        return;//  w ww.j  a  v a  2  s  .  c o  m
    }

    ImmutableMap<String, Header> savedHeaders = Maps.uniqueIndex(savedHeadersList,
            new Function<Header, String>() {
                public String apply(Header header) {
                    return header.getName();
                }
            });
    ImmutableMap<String, Header> translatedHeaders = Maps.uniqueIndex(translatedHeadersList,
            new Function<Header, String>() {
                public String apply(Header header) {
                    return header.getName();
                }
            });

    assertEquals(savedHeaders.size(), translatedHeaders.size());
    for (String key : savedHeaders.keySet()) {
        Header savedHeader = savedHeaders.get(key);
        Header translatedHeader = translatedHeaders.get(key);
        assertNotNull(savedHeader);
        assertNotNull(translatedHeader);

        assertEquals(savedHeader.getDefaultValue(), translatedHeader.getDefaultValue());
        assertEquals(savedHeader.getDescription(), translatedHeader.getDescription());
        assertEquals(savedHeader.getType(), translatedHeader.getType());
        assertEquals(savedHeader.isRequired(), translatedHeader.isRequired());
        // TODO: does not exist in Swagger 2.0 yet
        // assertEquals(savedHeader.isAllowMultiple(), translatedHeader.isAllowMultiple());

    }
}

From source file:org.restlet.test.ext.apispark.conversion.swagger.v2_0.Swagger2TestCase.java

private void compareRwadefSections(Contract savedContract, Contract translatedContract) {
    if (assertBothNull(savedContract.getSections(), translatedContract.getSections())) {
        return;//from  w  w w  .  jav a 2  s  . co m
    }

    ImmutableMap<String, Section> savedSections = Maps.uniqueIndex(savedContract.getSections(),
            new Function<Section, String>() {
                public String apply(Section section) {
                    return section.getName();
                }
            });
    ImmutableMap<String, Section> translatedSections = Maps.uniqueIndex(translatedContract.getSections(),
            new Function<Section, String>() {
                public String apply(Section section) {
                    return section.getName();
                }
            });

    assertEquals(savedSections.size(), translatedSections.size());
    for (String key : savedSections.keySet()) {
        Section savedSection = savedSections.get(key);
        Section translatedSection = translatedSections.get(key);
        assertNotNull(savedSection);
        assertNotNull(translatedSection);
        assertEquals(savedSection.getDescription(), translatedSection.getDescription());
    }
}

From source file:org.restlet.test.ext.apispark.conversion.swagger.v2_0.Swagger2TestCase.java

private void compareRwadefProperties(List<Property> savedPropertiesList,
        List<Property> translatedPropertiesList) {
    if (assertBothNull(savedPropertiesList, translatedPropertiesList)) {
        return;//from w w  w . j  a va  2 s .  co  m
    }

    ImmutableMap<String, Property> savedProperties = Maps.uniqueIndex(savedPropertiesList,
            new Function<Property, String>() {
                public String apply(Property property) {
                    return property.getName();
                }
            });
    ImmutableMap<String, Property> translatedProperties = Maps.uniqueIndex(translatedPropertiesList,
            new Function<Property, String>() {
                public String apply(Property property) {
                    return property.getName();
                }
            });

    assertEquals(savedProperties.size(), translatedProperties.size());
    for (String key : savedProperties.keySet()) {
        Property savedProperty = savedProperties.get(key);
        Property translatedProperty = translatedProperties.get(key);
        assertNotNull(savedProperty);
        assertNotNull(translatedProperty);

        assertEquals(savedProperty.getDefaultValue(), translatedProperty.getDefaultValue());
        assertEquals(savedProperty.getDescription(), translatedProperty.getDescription());
        assertEquals(savedProperty.getExample(), translatedProperty.getExample());
        assertEquals(savedProperty.getMax(), translatedProperty.getMax());
        assertEquals(savedProperty.getMin(), translatedProperty.getMin());
        assertEquals(savedProperty.getType(), translatedProperty.getType());
        assertEquals(savedProperty.getMaxOccurs(), translatedProperty.getMaxOccurs());
        assertEquals(savedProperty.getMinOccurs(), translatedProperty.getMinOccurs());

        compareRwadefProperties(savedProperty.getProperties(), translatedProperty.getProperties());
        compareStringLists(savedProperty.getEnumeration(), translatedProperty.getEnumeration());
    }
}