下面列出了com.google.common.collect.FluentIterable#append ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Propagate a build target's flavors in a certain domain to a list of other build targets.
*
* @param domain the flavor domain to be propagated.
* @param buildTarget the build target containing the flavors to be propagated
* @param deps list of BuildTargetPaths to propagate the flavors to. If a target already contains
* one or more flavors in domain, it is left unchanged.
* @return the list of BuildTargetPaths with any flavors propagated.
*/
public static FluentIterable<BuildTarget> propagateFlavorsInDomainIfNotPresent(
FlavorDomain<?> domain, BuildTarget buildTarget, FluentIterable<BuildTarget> deps) {
if (domain.containsAnyOf(buildTarget.getFlavors())) {
FluentIterable<BuildTarget> targetsWithFlavorsAlready =
deps.filter(containsFlavors(domain)::test);
FluentIterable<BuildTarget> targetsWithoutFlavors =
deps.filter(containsFlavors(domain).negate()::test);
deps =
targetsWithFlavorsAlready.append(
propagateFlavorDomains(buildTarget, ImmutableSet.of(domain), targetsWithoutFlavors));
}
return deps;
}
@Override
public FluentIterable<Resource> fromApi(Api api) {
List<Resource> topResources = api.resources();
FluentIterable<Resource> fi = from(topResources);
for (Resource resource : topResources) {
fi = fi.append(fromResource(resource));
}
return fi;
}
@Override
public FluentIterable<Resource> fromResource(Resource topResource) {
List<Resource> resources = topResource.resources();
FluentIterable<Resource> fi = from(resources);
for (Resource resource : resources) {
fi = fi.append(fromResource(resource));
}
return fi;
}
@SafeVarargs
private static <T> Set<T> union(Set<T>... sets) {
FluentIterable<T> result = FluentIterable.of();
for (Set<T> set : sets) {
result = result.append(set);
}
return result.toSet();
}
@SuppressWarnings("unchecked")
public static ImmutableSet<GoLinkable> requireTransitiveGoLinkables(
BuildTarget sourceTarget,
ActionGraphBuilder graphBuilder,
GoPlatform platform,
Iterable<BuildTarget> targets,
boolean includeSelf) {
FluentIterable<GoLinkable> linkables =
FluentIterable.from(targets)
.transformAndConcat(
input -> {
BuildTarget flavoredTarget =
input.withAppendedFlavors(platform.getFlavor(), TRANSITIVE_LINKABLES_FLAVOR);
return graphBuilder.requireMetadata(flavoredTarget, ImmutableSet.class).get();
});
if (includeSelf) {
Preconditions.checkArgument(sourceTarget.getFlavors().contains(TRANSITIVE_LINKABLES_FLAVOR));
linkables =
linkables.append(
requireGoLinkable(
sourceTarget,
graphBuilder,
platform,
sourceTarget.withoutFlavors(TRANSITIVE_LINKABLES_FLAVOR)));
}
return linkables.toSet();
}
public ImmutableSortedSet<Path> getRDotJavaFiles() {
FluentIterable<String> packages =
FluentIterable.from(
unionPackage.map(Collections::singletonList).orElse(Collections.emptyList()));
if (!skipNonUnionRDotJava) {
packages =
packages.append(
FluentIterable.from(androidResourceDeps)
.transform(HasAndroidResourceDeps::getRDotJavaPackage));
}
return packages.transform(this::getPathToRDotJava).toSortedSet(natural());
}