package core.aws.local;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
/**
* @author neo
*/
public class DependencyResolvers {
private final Logger logger = LoggerFactory.getLogger(getClass());
private final List<ResourceNodeDependencyResolver> resolvers = new ArrayList<>();
public void add(ResourceNode node, DependencyResolver resolver) {
resolvers.add(new ResourceNodeDependencyResolver(node, resolver));
}
public void resolve() {
for (ResourceNodeDependencyResolver resolver : resolvers) {
try {
resolver.resolver.resolve();
} catch (Exception e) {
logger.error("failed to resolve dependency, node=\n{}", resolver.node.yml);
throw e;
}
}
}
static class ResourceNodeDependencyResolver {
final ResourceNode node;
final DependencyResolver resolver;
ResourceNodeDependencyResolver(ResourceNode node, DependencyResolver resolver) {
this.node = node;
this.resolver = resolver;
}
}
}