List of usage examples for com.google.common.collect ImmutableMap size
int size();
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()); } }