com.softicar.platform.common.core.java.classes.analyzer.AnalyzedJavaClassFetcher Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of platform-common Show documentation
Show all versions of platform-common Show documentation
The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.
package com.softicar.platform.common.core.java.classes.analyzer;
import com.softicar.platform.common.core.java.classes.name.JavaClassName;
import com.softicar.platform.common.core.java.classpath.IJavaClasspathRoot;
import java.util.Collection;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class AnalyzedJavaClassFetcher {
private Predicate predicate;
public AnalyzedJavaClassFetcher() {
this.predicate = dummy -> true;
}
public AnalyzedJavaClassFetcher setFilter(Predicate predicate) {
this.predicate = Objects.requireNonNull(predicate);
return this;
}
public Collection fetchJavaClasses(IJavaClasspathRoot classpathRoot) {
return classpathRoot//
.getAnalyzedClasses()
.stream()
.filter(predicate)
.collect(Collectors.toList());
}
public Optional fetchJavaClass(IJavaClasspathRoot classpathRoot, JavaClassName className) {
return classpathRoot//
.getAnalyzedClass(className)
.filter(predicate);
}
}