code: public Map<ExecutionProperty, List<String>> parseProperties(Map<ExecutionProperty, List<String>> propertyMap, String... args) throws InterpreterPropertyException {
  
          //if some command line switches were specified
          if ( args.length > 0 ) {
              //easiest to build the args back up into a single string then split by -
              StringBuilder allArgs = new StringBuilder();
              for (String s : args) {
                  allArgs.append(s).append(" ");
              }
  
              String allargs = allArgs.toString();
              if ( allargs.trim().length() > 0 && ! allargs.startsWith("-")) {
                  throw new InterpreterPropertyException("arguments must start with a switch, e.g. -f");
              }
  
              //having checked the first char is a -, we now have to strip it
              //otherwise end up with a first "" token following the split - not sure that's correct behaviour from split
              allargs = allargs.substring(1);
              //hyphens may exist within paths so only split by those which have preceding empty space
              String[] splitParameterList = allargs.split(" -");
  
              for ( String parameterList : splitParameterList) {
  
                  //tokenize, first token will be the property name, rest will be the values
                  StringTokenizer st = new StringTokenizer(parameterList, " ");
  
                  //find the property
                  ExecutionProperty property = getProperty(parameterList, st);
  
                  //add its values
                  addPropertyValues(propertyMap, st, property);
              }
          }
          return propertyMap;
      }
docs: Add to the provided propertyMap any properties available from this source
  
  Where the map already contains property values under a given key, extra property values should be
  appended to the List
  
  @return propertyMap, with parsed properties added