in src/main/java/com/googlesource/gerrit/plugins/imagare/PutConfig.java [65:109]
public Response<String> apply(ConfigResource rsrc, Input input)
throws IOException, ConfigInvalidException, UnprocessableEntityException {
if (input == null) {
input = new Input();
}
FileBasedConfig cfg = new FileBasedConfig(sitePaths.gerrit_config.toFile(), FS.DETECTED);
cfg.load();
if (input.defaultProject != null) {
if (projectCache.get(new Project.NameKey(input.defaultProject)) == null) {
throw new UnprocessableEntityException(
"project '" + input.defaultProject + "' does not exist");
}
cfg.setString(
"plugin", pluginName, "defaultProject", Strings.emptyToNull(input.defaultProject));
}
if (input.linkDecoration != null) {
if (LinkDecoration.NONE.equals(input.linkDecoration)) {
cfg.unset("plugin", pluginName, "linkDecoration");
} else {
cfg.setEnum("plugin", pluginName, "linkDecoration", input.linkDecoration);
}
}
if (input.stage != null) {
if (input.stage) {
cfg.setBoolean("plugin", pluginName, "stage", input.stage);
} else {
cfg.unset("plugin", pluginName, "stage");
}
}
if (input.pattern != null) {
cfg.setString("plugin", pluginName, "pattern", input.pattern);
}
if (input.uploadUrl != null) {
cfg.setString("plugin", pluginName, "uploadUrl", input.uploadUrl);
}
cfg.save();
cfgFactory.getFromGerritConfig(pluginName, true);
return Response.<String>ok("OK");
}