docs: protected String getStringParameter(String key, JobInstance ji, boolean pop)
      {
          // First try: parameter name with specific RM key.
          String res = ji.getPrms().get(getParameterRoot() + this.key + "." + key);
          if (res != null && pop)
          {
              ji.getPrms().remove(getParameterRoot() + this.key + "." + key);
          }
  
          // Second try: parameter name without specific key (used by all RM of this type)
          if (res == null)
          {
              res = ji.getPrms().get(getParameterRoot() + key);
              if (res != null && pop)
              {
                  ji.getPrms().remove(getParameterRoot() + key);
              }
          }
  
          // Third try: just use value from RM configuration (which may be a hard-coded default).
          if (res == null)
          {
              res = this.currentProperties.get(getParameterRoot() + key);
          }
  
          // Go. Third try is by convention always supposed to succeed - all keys should have a default value.
          return res;
      }