# Interface Query

All Superinterfaces:
  `Map<String,String>`

All Known Subinterfaces:
  `Form`

All Known Implementing Classes:
  `QueryParser`

public interface Query extends Map<String,String>
The `Query` object is used to represent HTTP query parameters. Parameters are acquired by name and can be either a string, float, int, or boolean value. This ensures that data can be conveniently extracted in the correct type. This stores the parameters in a map of key value pairs. Each parameter can be acquired using the name of the parameter, if the parameter is named twice then all values can be acquired.

Author:
  Niall Gallagher

## Nested Class Summary

### Nested classes/interfaces inherited from interface Map

`Map.Entry<K,V>`

## Method Summary

Modifier and Type
Method
Description
`List<String>`
`getAll(Object name)`
This method is used to acquire a `List` for all of the parameter values associated with the specified name.
`boolean`
`getBoolean(Object name)`
This extracts a boolean parameter for the named value.
`float`
`getFloat(Object name)`
This extracts a float parameter for the named value.
`int`
`getInteger(Object name)`
This extracts an integer parameter for the named value.
`String`
`toString()`
This will return all parameters represented using the HTTP URL query format.

### Methods inherited from interface Map

`clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

## Method Details

### getAll

List<String> getAll(Object name)
This method is used to acquire a `List` for all of the parameter values associated with the specified name. Using this method allows the query to expose many values taken from the query or HTTP form posting. Typically the first value in the list is the value from the `get(String)` method as this is the primary value from the ordered list of values.

Parameters:
  `name` - this is the name used to search for the value
Returns:
  this is the list of values associated with the key

### getInteger

int getInteger(Object name)
This extracts an integer parameter for the named value. If the named parameter does not exist this will return a zero value. If however the parameter exists but is not in the format of a decimal integer value then this will throw an exception.

Parameters:
  `name` - the name of the parameter value to retrieve
Returns:
  this returns the named parameter value as an integer

### getFloat

float getFloat(Object name)
This extracts a float parameter for the named value. If the named parameter does not exist this will return a zero value. If however the parameter exists but is not in the format of a floating point number then this will throw an exception.

Parameters:
  `name` - the name of the parameter value to retrieve
Returns:
  this returns the named parameter value as a float

### getBoolean

boolean getBoolean(Object name)
This extracts a boolean parameter for the named value. If the named parameter does not exist this will return false otherwise the value is evaluated. If it is either `true` or `false` then those boolean values are returned.

Parameters:
  `name` - the name of the parameter value to retrieve
Returns:
  this returns the named parameter value as an float

### toString

String toString()
This will return all parameters represented using the HTTP URL query format. The `x-www-form-urlencoded` format is used to encode the attributes, see RFC 2616.

This will also encode any special characters that appear within the name and value pairs as an escaped sequence. If there are no parameters an empty string is returned.

Overrides:
  `toString` in class `Object`
Returns:
  returns an empty string if the is no parameters