package org.jtwig.util;
import com.google.common.base.Optional;
import org.jtwig.reflection.model.java.JavaClass;
import org.jtwig.reflection.model.java.JavaClassManager;
import static java.lang.Class.forName;
public class ClasspathFinder {
private final ClassLoader classLoader;
private final JavaClassManager javaClassManager;
public ClasspathFinder(ClassLoader classLoader, JavaClassManager javaClassManager) {
this.classLoader = classLoader;
this.javaClassManager = javaClassManager;
}
public boolean exists (String className) {
return load(className).isPresent();
}
public Optional<JavaClass> load(String className) {
try {
return Optional.of(javaClassManager.metadata(forName(className, false, classLoader)));
} catch (Exception e) {
return Optional.absent();
}
}
}