# Interface Form

All Superinterfaces:
  `Map<String,String>, Query`

public interface Form extends Query
The `Form` interface is used to represent the details submitted with a request. Typically this will be parameters given by a HTML form, however a form can also contain parts. Each part can represent either a file or a parameter. All parts can be acquired as `Part` objects from this `Form`.

Author:
  Niall Gallagher

## Nested Class Summary

### Nested classes/interfaces inherited from interface Map

`Map.Entry<K,V>`

## Method Summary

Modifier and Type
Method
Description
`Part`
`getPart(String name)`
This method is used to acquire a `Part` from the form using a known name for the part.
`List<Part>`
`getParts()`
This method provides all parts for this `Form`.

### 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`

### Methods inherited from interface Query

`getAll, getBoolean, getFloat, getInteger, toString`

## Method Details

### getPart

Part getPart(String name)
This method is used to acquire a `Part` from the form using a known name for the part. This is typically used when there is a file upload with a multipart POST request. All parts that are not files are added to the query values as strings so that they can be used in a convenient way.

Parameters:
  `name` - this is the name of the part to acquire
Returns:
  the named part or null if the part does not exist

### getParts

List<Part> getParts()
This method provides all parts for this `Form`. The parts for a form can contain text parameters or files. Each file part can contain headers, which take the form of HTTP headers to describe the payload. Typically headers describe the content.

Returns:
  this returns a list of parts for this form