Java 类org.reflections.scanners.TypeElementsScanner 实例源码
项目:Java2PlantUML
文件:Parser.java
private static Collection<? extends Class<?>> getPackageTypes(String packageToPase, Collection<URL> urls) {
Set<Class<?>> classes = new HashSet<>();
Reflections reflections = new Reflections(new ConfigurationBuilder()
.setScanners(new SubTypesScanner(false /* exclude Object.class */), new ResourcesScanner(), new TypeElementsScanner())
.setUrls(urls)
.filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix(packageToPase)).exclude("java.*")));
Set<String> types;
types = reflections.getStore().get("TypeElementsScanner").keySet();
for (String type: types) {
Class<?> aClass = TypesHelper.loadClass(type, CLASS_LOADER);
boolean wantedElement = StringUtils.startsWith(type, packageToPase);
if (null != aClass && wantedElement) {
logger.log(Level.INFO, "looking up for type: " + type);
classes.add(aClass);
}
}
return classes;
}
项目:objenome_prototype
文件:Packatainer.java
/** filters results to contain only what is in a given set of packages */
public Packatainer(String[] packages, Class... classes) {
this(new ConfigurationBuilder()
.forPackages(packages)
//.filterInputsBy(theClasses)
//.setUrls(ClasspathHelper.forPackage("my.project.prefix"))
.setScanners(new TypeElementsScanner().publicOnly().includeAnnotations(false).includeFields(false).includeMethods(false), new SubTypesScanner()), classes);
}
项目:reflections
文件:JavaCodeSerializerTest.java
@BeforeClass
public static void generateAndSave() {
Predicate<String> filter = new FilterBuilder().include("org.reflections.TestModel\\$.*");
Reflections reflections = new Reflections(new ConfigurationBuilder()
.filterInputsBy(filter)
.setScanners(new TypeElementsScanner().includeFields().publicOnly(false))
.setUrls(asList(ClasspathHelper.forClass(TestModel.class))));
//save
String filename = ReflectionsTest.getUserDir() + "/src/test/java/org.reflections.MyTestModelStore";
reflections.save(filename, new JavaCodeSerializer());
}
项目:morphia
文件:EntityScanner.java
/**
* Creates an EntityScanner using the given Morphia instance with the given predicate.
*
* @param m the Morphia instance
* @param predicate the Predicate to use when determining which classes to map.
*/
public EntityScanner(final Morphia m, final Predicate<String> predicate) {
Predicate<String> localPredicate = predicate;
if (localPredicate == null) {
localPredicate = Predicates.alwaysTrue();
}
Assert.parametersNotNull("m, predicate", m, localPredicate);
final ConfigurationBuilder conf = new ConfigurationBuilder();
conf.setScanners(new TypeElementsScanner(), new TypeAnnotationsScanner());
final Set<URL> s = new HashSet<URL>();
s.addAll(ClasspathHelper.forClassLoader());
s.addAll(ClasspathHelper.forJavaClassPath());
final Iterator<URL> iterator = s.iterator();
while (iterator.hasNext()) {
final URL url = iterator.next();
if (url.getPath().endsWith("jnilib")) {
iterator.remove();
}
}
conf.setUrls(new ArrayList<URL>(s));
conf.filterInputsBy(localPredicate);
conf.addScanners(new SubTypesScanner());
final Reflections r = new Reflections(conf);
final Set<Class<?>> entities = r.getTypesAnnotatedWith(Entity.class);
for (final Class<?> c : entities) {
m.map(c);
}
}
项目:FountainVanilla
文件:WetBlockState.java
public static ConfigurationBuilder getReflectionsConfiguration(String packageName) {
return new ConfigurationBuilder()
.addUrls(ClasspathHelper.forPackage(packageName))
.filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix(packageName + ".")))
.setScanners(new TypeElementsScanner(), new TypeAnnotationsScanner(), new SubTypesScanner());
}
项目:reflections-maven
文件:ReflectionsMojo.java
public void execute() throws MojoExecutionException, MojoFailureException {
//
if (StringUtils.isEmpty(destinations)) {
destinations = resolveOutputDirectory() + "/META-INF/reflections/" + getProject().getArtifactId() + "-reflections.xml";
}
String outputDirectory = resolveOutputDirectory();
if (!new File(outputDirectory).exists()) {
getLog().warn(String.format("Reflections plugin is skipping because %s was not found", outputDirectory));
return;
}
//
ConfigurationBuilder config = new ConfigurationBuilder();
config.setUrls(parseUrls());
if (!isEmpty(includeExclude)) {
config.filterInputsBy(FilterBuilder.parse(includeExclude));
}
config.setScanners(!isEmpty(scanners) ? parseScanners() : new Scanner[]{new SubTypesScanner(), new TypeAnnotationsScanner()});
if (!isEmpty(serializer)) {
try {
Serializer serializerInstance = (Serializer) forName(serializer, "org.reflections.serializers").newInstance();
config.setSerializer(serializerInstance);
if (serializerInstance instanceof JavaCodeSerializer) {
int size = config.getScanners().size();
config.addScanners(new TypeElementsScanner());
if (size != config.getScanners().size()) {
getLog().info("added type scanners for JavaCodeSerializer");
}
}
} catch (Exception ex) {
throw new ReflectionsException("could not create serializer instance", ex);
}
}
if (parallel != null && parallel.equals(Boolean.TRUE)) {
config.useParallelExecutor();
}
//
if (Reflections.log == null) {
try {
Reflections.log = new MavenLogAdapter(getLog());
} catch (Error e) {
//ignore
}
}
Reflections reflections = new Reflections(config);
reflections.save(destinations.trim());
}