package com.softwaremill.common.util.dependency;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class ThreadLocalDependencyProvider extends AbstractDependencyProvider {
private final ThreadLocal<List<Object>> dependencies;
private final ThreadLocal<List<QualifiedDependency>> dependenciesWithQualifiers;
public ThreadLocalDependencyProvider(List<Object> deps) {
dependenciesWithQualifiers = new ThreadLocal<List<QualifiedDependency>>() {
@Override
protected List<QualifiedDependency> initialValue() {
return new ArrayList<QualifiedDependency>();
}
};
dependencies = new ThreadLocal<List<Object>>() {
@Override
protected List<Object> initialValue() {
return new ArrayList<Object>();
}
};
loadDeps(deps);
}
@Override
protected List<Object> getDependencies() {
return dependencies.get();
}
@Override
protected List<QualifiedDependency> getDependenciesWithQualifiers() {
return dependenciesWithQualifiers.get();
}
}