com.google.common.collect.FluentIterable#filter ( )源码实例Demo

下面列出了com.google.common.collect.FluentIterable#filter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: brooklyn-server   文件: ItemLister.java
private <T extends BrooklynObject> List<Class<? extends T>> getTypes(List<URL> urls, Class<T> type, Boolean catalogOnlyOverride) {
    // TODO this only really works if you give it lots of URLs - see comment on "--jar" argument
    // NB if the ReflectionScanner class is given "null" then it will scan, better than INITIAL_CLASSPATH 
    FluentIterable<Class<? extends T>> fluent = FluentIterable.from(ClassFinder.findClasses(urls, type));
    if (typeRegex != null) {
        fluent = fluent.filter(ClassFinder.withClassNameMatching(typeRegex));
    }
    if (catalogOnlyOverride == null ? !allClasses : catalogOnlyOverride) {
        fluent = fluent.filter(ClassFinder.withAnnotation(Catalog.class));
    }
    List<Class<? extends T>> filtered = fluent.toList();
    Collection<Class<? extends T>> result;
    if (!includeImpls) {
        result = MutableSet.copyOf(filtered);
        for (Class<? extends T> clazz : filtered) {
            ImplementedBy implementedBy = clazz.getAnnotation(ImplementedBy.class);
            if (implementedBy != null) {
                result.remove(implementedBy.value());
            }
        }
    } else {
        result = filtered;
    }
    itemCount += result.size();
    return ImmutableList.copyOf(result);
}
 
源代码2 项目: attic-aurora   文件: QuotaManager.java
private ResourceBag getConsumption(
    FluentIterable<IAssignedTask> tasks,
    Map<IJobKey, IJobUpdateInstructions> updatesByKey,
    Map<IJobKey, IJobConfiguration> cronTemplatesByKey,
    Predicate<ITaskConfig> filter) {

  FluentIterable<IAssignedTask> filteredTasks =
      tasks.filter(compose(filter, IAssignedTask::getTask));

  Predicate<IAssignedTask> excludeCron = compose(
      not(in(cronTemplatesByKey.keySet())),
      Tasks::getJob);

  ResourceBag nonCronConsumption = getNonCronConsumption(
      updatesByKey,
      filteredTasks.filter(excludeCron),
      filter);

  ResourceBag cronConsumption = getCronConsumption(
      Iterables.filter(
          cronTemplatesByKey.values(),
          compose(filter, IJobConfiguration::getTaskConfig)),
      filteredTasks.transform(IAssignedTask::getTask));

  return nonCronConsumption.add(cronConsumption);
}
 
源代码3 项目: buck   文件: Flavors.java
/**
 * 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;
}
 
源代码4 项目: ArchUnit   文件: DependenciesAssertion.java
public DependenciesAssertion containOnly(final ExpectedDependencies expectedDependencies) {
    FluentIterable<? extends Dependency> rest = FluentIterable.from(actual);
    for (final List<Class<?>> expectedDependency : expectedDependencies) {
        rest = rest.filter(new Predicate<Dependency>() {
            @Override
            public boolean apply(Dependency input) {
                return !matches(input, expectedDependency.get(0), expectedDependency.get(1));
            }
        });
    }
    assertThat(rest.toSet()).as("unexpected elements").isEmpty();
    return this;
}
 
源代码5 项目: xtext-eclipse   文件: XbaseProposalProvider.java
/**
 * @since 2.17
 */
protected Iterable<JvmFeature> getFavoriteStaticFeatures(EObject context, Predicate<JvmFeature> filter) {
	String pref = PreferenceConstants.getPreference(PreferenceConstants.CODEASSIST_FAVORITE_STATIC_MEMBERS, null);
	List<JvmFeature> result = newArrayList();
	if (Strings.isEmpty(pref)) {
		return result;
	}
	String[] favorites = pref.split(";"); //$NON-NLS-1$
	for (String fav : favorites) {
		boolean isWildcard = fav.lastIndexOf("*") > 0; //$NON-NLS-1$
		int indexOfLastDot = fav.lastIndexOf("."); //$NON-NLS-1$
		if (indexOfLastDot > 0) {
			String typeName = fav.substring(0, indexOfLastDot);
			JvmType type = typeReferences.findDeclaredType(typeName, context);
			final String membername = fav.substring(indexOfLastDot + 1, fav.length());
			if (type != null) {
				if (type instanceof JvmDeclaredType) {
					JvmDeclaredType genericType = (JvmDeclaredType) type;
					// All features but no Constructor
					FluentIterable<JvmFeature> allFeaturesToImport = FluentIterable.from(genericType.getMembers()).filter(JvmFeature.class).filter(input -> {
						boolean isValid = !(input instanceof JvmConstructor) && input.isStatic();
						if (isWildcard) {
							return isValid;
						} else {
							return isValid && input.getSimpleName().equals(membername);
						}
					});
					FluentIterable<JvmFeature> featuresToImport = allFeaturesToImport.filter(filter);
					if (context != null) {
						// Make sure that already imported static features are not proposed
						RewritableImportSection importSection = importSectionFactory.parse((XtextResource) context.eResource());
						featuresToImport = featuresToImport.filter(input -> !importSection.hasStaticImport(input.getSimpleName(), false));
					}
					featuresToImport.copyInto(result);
				}
			}
		}
	}
	return result;
}
 
源代码6 项目: buck   文件: XcodeNativeTargetGenerator.java
private FluentIterable<TargetNode<?>> collectRecursiveLibraryDepTargets(
    TargetNode<?> targetNode) {
  FluentIterable<TargetNode<?>> allDeps =
      FluentIterable.from(
          AppleBuildRules.getRecursiveTargetNodeDependenciesOfTypes(
              xcodeDescriptions,
              targetGraph,
              Optional.of(dependenciesCache),
              RecursiveDependenciesMode.LINKING,
              targetNode,
              xcodeDescriptions.getXCodeDescriptions()));
  return allDeps.filter(this::isLibraryWithSourcesToCompile);
}
 
源代码7 项目: buck   文件: XcodeNativeTargetGenerator.java
private FluentIterable<TargetNode<?>> filterRecursiveLibraryDepTargetsWithSwiftSources(
    FluentIterable<TargetNode<?>> targetNodes) {
  return targetNodes.filter(this::isLibraryWithSwiftSources);
}