List of usage examples for com.google.common.collect FluentIterable transform
@CheckReturnValue public final <T> FluentIterable<T> transform(Function<? super E, T> function)
From source file:dagger2.internal.codegen.ComponentGenerator.java
private void writeEntry(List<Object> argsBuilder, Binding binding, Snippet factory) { AnnotationMirror mapKeyAnnotationMirror = Iterables.getOnlyElement(getMapKeys(binding.bindingElement())); Map<? extends ExecutableElement, ? extends AnnotationValue> map = mapKeyAnnotationMirror.getElementValues(); MapKey mapKey = mapKeyAnnotationMirror.getAnnotationType().asElement().getAnnotation(MapKey.class); if (!mapKey.unwrapValue()) {// wrapped key case FluentIterable<AnnotationValue> originIterable = FluentIterable .from(AnnotationMirrors.getAnnotationValuesWithDefaults(mapKeyAnnotationMirror).values()); FluentIterable<Snippet> annotationValueNames = originIterable .transform(new Function<AnnotationValue, Snippet>() { @Override/*from ww w. j av a 2 s . co m*/ public Snippet apply(AnnotationValue value) { return getValueSnippet(value); } }); ImmutableList.Builder<Snippet> snippets = ImmutableList.builder(); for (Snippet snippet : annotationValueNames) { snippets.add(snippet); } argsBuilder.add(Snippet.format("%s.create(%s)", Util.getMapKeyCreatorClassName( MoreTypes.asTypeElement(mapKeyAnnotationMirror.getAnnotationType())), Snippet.makeParametersSnippet(snippets.build()))); argsBuilder.add(factory); } else { // unwrapped key case argsBuilder.add(Iterables.getOnlyElement(map.entrySet()).getValue()); argsBuilder.add(factory); } }
From source file:org.sosy_lab.cpachecker.core.algorithm.BMCAlgorithm.java
/** * @param pReachedSet/*from w w w . j a v a 2 s . c o m*/ * @param pTargetLocations * @return */ private Set<CFAEdge> getRelevantAssumeEdges(ReachedSet pReachedSet, ImmutableSet<CFANode> pTargetLocations) { FluentIterable<AbstractState> targetStates = from(pReachedSet).filter(IS_TARGET_STATE); final Set<CFAEdge> assumeEdges = new HashSet<>(); Set<CFANode> targetLocations = from( Iterables.concat(pTargetLocations, targetStates.transform(EXTRACT_LOCATION))).toSet(); Set<CFANode> visited = new HashSet<>(targetLocations); Queue<CFANode> waitlist = new ArrayDeque<>(targetLocations); while (!waitlist.isEmpty()) { CFANode current = waitlist.poll(); for (CFAEdge enteringEdge : CFAUtils.enteringEdges(current)) { CFANode predecessor = enteringEdge.getPredecessor(); if (enteringEdge.getEdgeType() == CFAEdgeType.AssumeEdge) { assumeEdges.add(enteringEdge); } else if (visited.add(predecessor)) { waitlist.add(predecessor); } } } return assumeEdges; }
From source file:org.apache.aurora.scheduler.thrift.SchedulerThriftInterface.java
@Override public Response addInstances(InstanceKey key, int count) { IJobKey jobKey = JobKeys.assertValid(IJobKey.build(key.getJobKey())); Response response = empty();//from www .ja v a 2 s.c o m return storage.write(storeProvider -> { try { if (getCronJob(storeProvider, jobKey).isPresent()) { return invalidRequest("Instances may not be added to cron jobs."); } lockManager.assertNotLocked(ILockKey.build(LockKey.job(jobKey.newBuilder()))); FluentIterable<IScheduledTask> currentTasks = FluentIterable .from(storeProvider.getTaskStore().fetchTasks(Query.jobScoped(jobKey).active())); if (count <= 0) { return invalidRequest(INVALID_INSTANCE_COUNT); } Optional<IScheduledTask> templateTask = Iterables.tryFind(currentTasks, e -> e.getAssignedTask().getInstanceId() == key.getInstanceId()); if (!templateTask.isPresent()) { return invalidRequest(INVALID_INSTANCE_ID); } int lastId = currentTasks.transform(e -> e.getAssignedTask().getInstanceId()).toList().stream() .max(Comparator.naturalOrder()).get(); Set<Integer> instanceIds = ContiguousSet.create(Range.openClosed(lastId, lastId + count), DiscreteDomain.integers()); ITaskConfig task = templateTask.get().getAssignedTask().getTask(); validateTaskLimits(task, Iterables.size(currentTasks) + instanceIds.size(), quotaManager.checkInstanceAddition(task, instanceIds.size(), storeProvider)); stateManager.insertPendingTasks(storeProvider, task, instanceIds); addInstancesCounter.addAndGet(instanceIds.size()); return response.setResponseCode(OK); } catch (LockException e) { return error(LOCK_ERROR, e); } catch (TaskValidationException | IllegalArgumentException e) { return error(INVALID_REQUEST, e); } }); }
From source file:com.facebook.buck.jvm.java.DefaultJavaLibrary.java
/** * Building a java_library() rule entails compiling the .java files specified in the srcs * attribute. They are compiled into a directory under {@link BuckPaths#getScratchDir()}. *//*from www .j ava 2 s . co m*/ @Override public final ImmutableList<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext) { ImmutableList.Builder<Step> steps = ImmutableList.builder(); FluentIterable<JavaLibrary> declaredClasspathDeps = JavaLibraryClasspathProvider .getJavaLibraryDeps(getDepsForTransitiveClasspathEntries()); // Always create the output directory, even if there are no .java files to compile because there // might be resources that need to be copied there. BuildTarget target = getBuildTarget(); Path outputDirectory = getClassesDir(target, getProjectFilesystem()); steps.add(new MakeCleanDirectoryStep(getProjectFilesystem(), outputDirectory)); SuggestBuildRules suggestBuildRule = DefaultSuggestBuildRules.createSuggestBuildFunction(JAR_RESOLVER, declaredClasspathDeps.toSet(), ImmutableSet.<JavaLibrary>builder().addAll(getTransitiveClasspathDeps()).add(this).build(), context.getActionGraph().getNodes()); // We don't want to add these to the declared or transitive deps, since they're only used at // compile time. Collection<Path> provided = JavaLibraryClasspathProvider.getJavaLibraryDeps(providedDeps) .transformAndConcat(JavaLibrary::getOutputClasspaths).filter(Objects::nonNull).toSet(); ProjectFilesystem projectFilesystem = getProjectFilesystem(); // NOPMD confused by lambda Iterable<Path> declaredClasspaths = declaredClasspathDeps .transformAndConcat(JavaLibrary::getOutputClasspaths).transform(projectFilesystem::resolve); // Only override the bootclasspath if this rule is supposed to compile Android code. ImmutableSortedSet<Path> declared = ImmutableSortedSet.<Path>naturalOrder().addAll(declaredClasspaths) .addAll(additionalClasspathEntries).addAll(provided).build(); // Make sure that this directory exists because ABI information will be written here. Step mkdir = new MakeCleanDirectoryStep(getProjectFilesystem(), getPathToAbiOutputDir()); steps.add(mkdir); // If there are resources, then link them to the appropriate place in the classes directory. JavaPackageFinder finder = context.getJavaPackageFinder(); if (resourcesRoot.isPresent()) { finder = new ResourcesRootPackageFinder(resourcesRoot.get(), finder); } steps.add(new CopyResourcesStep(getProjectFilesystem(), getResolver(), ruleFinder, target, resources, outputDirectory, finder)); steps.add(new MakeCleanDirectoryStep(getProjectFilesystem(), getOutputJarDirPath(target, getProjectFilesystem()))); // Only run javac if there are .java files to compile or we need to shovel the manifest file // into the built jar. if (!getJavaSrcs().isEmpty()) { ClassUsageFileWriter usedClassesFileWriter; if (trackClassUsage) { final Path usedClassesFilePath = getUsedClassesFilePath(getBuildTarget(), getProjectFilesystem()); depFileOutputPath = getProjectFilesystem().getPathForRelativePath(usedClassesFilePath); usedClassesFileWriter = new DefaultClassUsageFileWriter(usedClassesFilePath); buildableContext.recordArtifact(usedClassesFilePath); } else { usedClassesFileWriter = NoOpClassUsageFileWriter.instance(); } // This adds the javac command, along with any supporting commands. Path pathToSrcsList = BuildTargets.getGenPath(getProjectFilesystem(), getBuildTarget(), "__%s__srcs"); steps.add(new MkdirStep(getProjectFilesystem(), pathToSrcsList.getParent())); Path scratchDir = BuildTargets.getGenPath(getProjectFilesystem(), target, "lib__%s____working_directory"); steps.add(new MakeCleanDirectoryStep(getProjectFilesystem(), scratchDir)); Optional<Path> workingDirectory = Optional.of(scratchDir); ImmutableSortedSet<Path> javaSrcs = getJavaSrcs().stream().map(getResolver()::getRelativePath) .collect(MoreCollectors.toImmutableSortedSet()); compileStepFactory.createCompileToJarStep(context, javaSrcs, target, getResolver(), ruleFinder, getProjectFilesystem(), declared, outputDirectory, workingDirectory, pathToSrcsList, Optional.of(suggestBuildRule), postprocessClassesCommands, ImmutableSortedSet.of(outputDirectory), /* mainClass */ Optional.empty(), manifestFile.map(getResolver()::getAbsolutePath), outputJar.get(), usedClassesFileWriter, /* output params */ steps, buildableContext, classesToRemoveFromJar); } if (outputJar.isPresent()) { Path output = outputJar.get(); // No source files, only resources if (getJavaSrcs().isEmpty()) { steps.add( new JarDirectoryStep(getProjectFilesystem(), output, ImmutableSortedSet.of(outputDirectory), /* mainClass */ null, manifestFile.map(getResolver()::getAbsolutePath).orElse(null), true, classesToRemoveFromJar)); } buildableContext.recordArtifact(output); } JavaLibraryRules.addAccumulateClassNamesStep(this, buildableContext, steps); return steps.build(); }
From source file:com.facebook.buck.features.apple.project.ProjectGenerator.java
@VisibleForTesting static FluentIterable<TargetNode<?>> swapSharedLibrariesForBundles(FluentIterable<TargetNode<?>> targetDeps, ImmutableMap<BuildTarget, TargetNode<?>> sharedLibrariesToBundles) { return targetDeps.transform(t -> sharedLibrariesToBundles.getOrDefault(t.getBuildTarget(), t)); }
From source file:com.facebook.buck.features.apple.project.ProjectGenerator.java
private ImmutableSet<PBXFileReference> targetNodesIterableToPBXFileReference( FluentIterable<TargetNode<?>> targetNodes) { return targetNodes.transform(this::getLibraryFileReference).toSet(); }
From source file:com.facebook.buck.features.apple.project.ProjectGenerator.java
private ImmutableList<String> collectLibraryLinkerFlags(FluentIterable<TargetNode<?>> targetNodes) { return targetNodes.transform(dep -> getLibraryLinkerFlag(dep)).filter(Optional::isPresent) .transform(input -> input.get()).toList(); }
From source file:com.facebook.buck.features.apple.project.ProjectGenerator.java
private ImmutableList<String> collectFrameworkLinkerFlags(FluentIterable<TargetNode<?>> targetNodes) { return targetNodes .transform(input -> TargetNodes.castArg(input, AppleBundleDescriptionArg.class) .flatMap(this::getFrameworkLinkerFlag)) .filter(Optional::isPresent).transform(input -> input.get()).toList(); }
From source file:com.facebook.buck.features.apple.project.ProjectGenerator.java
private ImmutableList<String> collectForceLoadLinkerFlags(FluentIterable<TargetNode<?>> targetNodes) { return targetNodes .transform(input -> TargetNodes.castArg(input, CxxLibraryDescription.CommonArg.class) .flatMap(this::getForceLoadLinkerFlag)) .filter(Optional::isPresent).transform(input -> input.get()).toList(); }
From source file:com.facebook.buck.features.apple.project.ProjectGenerator.java
private ImmutableList<String> collectSystemLibraryAndFrameworkLinkerFlags(ImmutableSet<FrameworkPath> paths) { FluentIterable<FrameworkPath> pathList = FluentIterable.from(paths); return pathList.transform(fwkOrLib -> getSystemFrameworkOrLibraryLinkerFlag(fwkOrLib)) .filter(Optional::isPresent).transform(input -> input.get()).toList(); }