public Map getNewResourceFromRequest()

in server/src/jetbrains/buildServer/sharedResources/pages/ResourceHelper.java [36:71]


  public Map<String, String> getNewResourceFromRequest(@NotNull final HttpServletRequest request) {
    final Map<String, String> result = new HashMap<>();
    final String resourceName = request.getParameter(SharedResourcesPluginConstants.WEB.PARAM_RESOURCE_NAME);
    result.put(SharedResourcesPluginConstants.ProjectFeatureParameters.NAME, resourceName);
    final String type = request.getParameter(SharedResourcesPluginConstants.WEB.PARAM_RESOURCE_TYPE);
    result.put(SharedResourcesPluginConstants.ProjectFeatureParameters.TYPE, type);
    final ResourceType resourceType = ResourceType.fromString(type);
    if (ResourceType.QUOTED.equals(resourceType)) {
      final String resourceQuota = request.getParameter(SharedResourcesPluginConstants.WEB.PARAM_RESOURCE_QUOTA);
      if (!isEmptyOrSpaces(resourceQuota)) { // we have quoted resource
        try {
          int quota = Integer.parseInt(resourceQuota);
          result.put(SharedResourcesPluginConstants.ProjectFeatureParameters.QUOTA, Integer.toString(quota));
          return validate(result);
        } catch (IllegalArgumentException e) {
          LOG.warn("Illegal argument supplied in quota for resource [" + resourceName + "]");
          return null;
        }
      } else {
        result.put(SharedResourcesPluginConstants.ProjectFeatureParameters.QUOTA, "-1");
        return validate(result);
      }
    } else if (ResourceType.CUSTOM.equals(resourceType)) {
      final String values = request.getParameter(SharedResourcesPluginConstants.WEB.PARAM_RESOURCE_VALUES);
      if (!isEmptyOrSpaces(values)) {
        final List<String> strings = StringUtil.split(values, true, '\r', '\n');
        if (!strings.isEmpty()) {
          result.put(SharedResourcesPluginConstants.ProjectFeatureParameters.VALUES, String.join("\n", strings));
          return validate(result);
        }
      }
    } else {
      return null;
    }
    return null;
  }