package me.august.lumen.compile.resolve.lookup;
import me.august.lumen.compile.resolve.data.ClassData;
import java.util.ArrayList;
import java.util.List;
public class DependencyManager implements ClassLookup {
List<ClassLookup> sources = new ArrayList<>();
public DependencyManager() {
sources.add(new BuiltinClassLookup());
}
public void addSource(ClassLookup lookup) {
sources.add(lookup);
}
public List<ClassLookup> getSources() {
return sources;
}
@Override
public ClassData lookup(String path) {
for (ClassLookup src : sources) {
ClassData cls = src.lookup(path);
if (cls != null) return cls;
}
return null;
}
@Override
public boolean hasClass(String path) {
for (ClassLookup src : sources) {
if (src.hasClass(path)) return true;
}
return false;
}
}