public Response apply()

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");
  }