private Multimap<String, String> computeUserParameters() { Multimap<String, String> result = LinkedHashMultimap.create(); for (String key : suite.parameterNames()) { // first check if the user has specified values Collection<String> userValues = userParameterArguments.get(key); if (!userValues.isEmpty()) { result.putAll(key, userValues); // TODO: type convert 'em to validate? } else { // otherwise use the default values from the suite Set<String> values = suite.parameterValues(key); if (values.isEmpty()) { throw new ConfigurationException( key + " has no values. " + "Did you forget a -D" + key + "=<value> command line argument?"); } result.putAll(key, values); } } return result; }