package kpc.common.computer.api;
import com.google.common.collect.ImmutableMap;
import kpc.api.computer.Computer;
import kpc.common.utils.GHGist;
import java.util.Map;
public final class PkgApi{
private static final Map<String, PackageManager> pkgManagers = ImmutableMap.<String, PackageManager>builder()
.put("gist", new GistPackageManager())
.build();
private final Computer computer;
public PkgApi(Computer comp){
this.computer = comp;
}
public Object install(String mode, String id){
if(!pkgManagers.containsKey(mode)){
return "Invalid Package Manager: " + mode;
}
pkgManagers.get(mode).install(this.computer, id);
return null;
}
private static interface PackageManager{
public void install(Computer comp, String id);
}
private static final class GistPackageManager
implements PackageManager{
@Override
public void install(Computer comp, String id) {
GHGist.of(id).install(comp);
}
}
}