This is quite trivial, but I want to support a URL like this:
   http://myhost.com/rest/foos?bar=456&bar=789
(Basically saying give me a list of all Foos that reference Bar[456] 
or Bar[789].)

In my Finder class, I use Request.getResourceRef().getQueryAsForm() to get a
Form object of all the Parameters.  I really expected a method to give me all
the values for parameter "bar".  I can call Form.getFirstValue("bar") to get the
first value, but Form.getValues("bar") returns a comma-delimited list.
Technically my bar values could have anything encoded in them, so this might be
convenient but not always safe.

I find myself using this to get a Collection<String> of the values:
Form f = request.getResourceRef().getQueryAsForm();
List<String> v = Arrays.asList(f.getValues("bar", "\t", false).split("\\t"));

Kind of ugly but concise.  This still assumes there won't be any tab characters
encoded in the url's parameter values, which is a possibility.

I know a foolproof way would be to iterate through all Parameters and test each
Parameter name myself, but I'm just pointing out that there should probably be a
more elegant way built in.

Trivial, I know.  Or am I missing something?
Stokes.

Reply via email to