code: @Nonnull
      public ParametersAction createUpdated(Collection<? extends ParameterValue> overrides) {
          if(overrides == null) {
              ParametersAction parametersAction = new ParametersAction(parameters);
              parametersAction.safeParameters = this.safeParameters;
              return parametersAction;
          }
          List<ParameterValue> combinedParameters = Lists.<ParameterValue>newArrayList(overrides);
          Set<String> names = newHashSet();
  
          for(ParameterValue v : overrides) {
              if (v == null) continue;
              names.add(v.getName());
          }
  
          for (ParameterValue v : parameters) {
              if (v == null) continue;
              if (!names.contains(v.getName())) {
                  combinedParameters.add(v);
              }
          }
  
          return new ParametersAction(combinedParameters, this.safeParameters);
      }
docs: Creates a new {@link ParametersAction} that contains all the parameters in this action
  with the overrides / new values given as parameters.
  @return New {@link ParametersAction}. The result may contain null {@link ParameterValue}s