addonscript-java/src/main/java/ley/anvil/addonscript/wrapper/RepoManager.java
Timo Ley cf456421d4 Major overhaul
Many things still need to be added, but this should be already useable
2020-07-26 15:47:05 +02:00

47 lines
1.3 KiB
Java

package ley.anvil.addonscript.wrapper;
import ley.anvil.addonscript.util.HTTPRequest;
import ley.anvil.addonscript.util.IRepository;
import ley.anvil.addonscript.util.Utils;
import javax.annotation.Nonnull;
import java.util.HashMap;
import java.util.Map;
public class RepoManager {
HashMap<String, IRepository> repositories;
public RepoManager() {
repositories = new HashMap<>();
}
public void addRepository(@Nonnull String id, @Nonnull IRepository repo) {
repositories.put(id, repo);
}
@HTTPRequest
public String resolveArtifact(@Nonnull String artifact) {
for (IRepository repo : repositories.values()) {
String link = repo.getFileURL(artifact);
if (Utils.notEmpty(link))
return link;
}
throw new RuntimeException(artifact + " was not found in a known repository");
}
@HTTPRequest
public Map<String, MetaData> getMeta(@Nonnull String[] artifacts) {
Map<String, MetaData> metas = new HashMap<>();
for (String a : artifacts) {
for (IRepository r : repositories.values()) {
MetaData data = r.getMeta(a);
if (data != null)
metas.put(a, data);
}
}
return metas;
}
}