package com.brightgenerous.resolver.delegate;
import java.util.Set;
import com.brightgenerous.resolver.Matcher;
import com.brightgenerous.resolver.delegate.ResolverUtil.ClassTest;
class ResolverDelegaterSub implements ResolverDelegater {
@Override
public <T> Set<Class<? extends T>> find(Matcher matcher, String packageName) {
ResolverUtil<T> util = new ResolverUtil<>();
util.find(new AdaptTest(matcher), packageName);
return util.getClasses();
}
@Override
public <T> Set<Class<? extends T>> find(Matcher matcher, String packageName,
ClassLoader classloader) {
ResolverUtil<T> util = new ResolverUtil<>();
util.setClassLoader(classloader);
util.find(new AdaptTest(matcher), packageName);
return util.getClasses();
}
private static class AdaptTest extends ClassTest {
private final Matcher matcher;
public AdaptTest(Matcher matcher) {
this.matcher = matcher;
}
@SuppressWarnings("rawtypes")
@Override
public boolean matches(Class type) {
return matcher.matches(type);
}
}
}