package org.alien4cloud.tosca.catalog.index;
import java.util.Set;
import javax.inject.Inject;
import org.alien4cloud.tosca.model.CSARDependency;
import org.alien4cloud.tosca.model.Csar;
import org.springframework.stereotype.Component;
import com.google.common.collect.Sets;
import alien4cloud.exception.NotFoundException;
import alien4cloud.tosca.context.ToscaContext;
import alien4cloud.tosca.context.ToscaContextual;
@Component
public class CsarDependencyLoader implements ICsarDependencyLoader {
@Inject
private CsarService csarService;
@Override
public Set<CSARDependency> getDependencies(String name, String version) {
Csar csar = csarService.get(name, version);
if (csar == null) {
throw new NotFoundException("Csar with name [" + name + "] and version [" + version + "] cannot be found");
}
if (csar.getDependencies() == null || csar.getDependencies().isEmpty()) {
return Sets.newHashSet();
}
return Sets.newHashSet(csar.getDependencies());
}
@Override
@ToscaContextual
public CSARDependency buildDependencyBean(String name, String version) {
CSARDependency newDependency = new CSARDependency(name, version);
Csar csar = ToscaContext.get().getArchive(name, version);
if (csar != null) {
newDependency.setHash(csar.getHash());
}
return newDependency;
}
}