io.dangernoodle.grt.Repository Maven / Gradle / Ivy
package io.dangernoodle.grt;
import static java.util.Optional.ofNullable;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Objects;
import io.dangernoodle.grt.utils.JsonTransformer.JsonArray;
import io.dangernoodle.grt.utils.JsonTransformer.JsonObject;
import io.dangernoodle.grt.utils.JsonTransformer.JsonObject.Deserializer;
/**
* Represents a repository configuration.
*
* @since 0.1.0
*/
public class Repository
{
public static final String GITHUB = "github";
private final JsonObject json;
private final Map plugins;
private final Settings settings;
public Repository(JsonObject json)
{
this.json = json;
this.plugins = buildPluginMap();
this.settings = new Settings(json.getJsonObject("settings"));
}
public String getName()
{
return json.getString("name");
}
public String getOrganization()
{
return json.getString("organization");
}
@SuppressWarnings("unchecked")
public T getPlugin(String name)
{
return (T) getPlugins().get(name);
}
public Map getPlugins()
{
return plugins;
}
public Settings getSettings()
{
return settings;
}
public Collection getWorkflow()
{
return json.getCollection("workflow");
}
private Map buildPluginMap()
{
return json.getMap("plugins", new Deserializer © 2015 - 2025 Weber Informatics LLC | Privacy Policy