## Collection

Implemented in class xdoclet.modules.util.CollectionTagsHandler.

- Block Tags
- Content Tags

### Block Tags:

#### ifContains (block template)

Generates the contained template code if the specified collection contains the key or value passed as attributes. If the collection is a set, only the 'value' attribute should be specified. If the collection is a map, the 'key' attribute should be specifed and if the 'value' attribute is also specified, an additional check for equality will be made.

name | The collection to operate on.
[key] | The key to check, if the collection is a map.
[value] | The valu to check, if the collection is a set. If the collection is a map, the value to check for equality.

#### ifDoesntContain (block template)

Generates the contained template code if the specified collection doesn't contain the key or value passed as attributes. If the collection is a set, only the 'value' attribute should be specified. If the collection is a map, the 'key' attribute should be specifed and if the 'value' attribute is also specified, an additional check for equality will be made.

name | The collection to operate on.
[key] | The key to check, if the collection is a map.
[value] | The valu to check, if the collection is a set. If the collection is a map, the value to check for equality.

### Content templates:

#### get (content template)

Obtains one value contained in the collection. This tag only apply to map valued collections, and an xdoclet exception will be throw if the specified collection is not a map.

key | The collection to operate on.
name | The key to retrive.

#### create (content template)

Creates a new utility collection that will store template data. If a collection with the specified name already exists, an XDocletException will be thrown.

name | The name for the newly created collection
[type] | The type of the collection to create. Default value is set Valid Values = {map,set}

#### put (content template)

Puts a new element into the specified collection. If the collection is a set, only the 'name' and 'value' attributes should be specified. If the collection is a map, the 'key' value should also be specified. If the 'key' is specified and the collection is a set, or if 'key' is not specified and the collection is a map, an XDocletException will be thrown.

name | The name of the collection to operate on. If the collection does not exists, an execption will be thrown.
[key] | The key to the new value. Should only be specified if the collection is a map.
value | The value to put into the collection.

#### remove (content template)

Removes an element from the specified collection. One of 'key' or 'value' attributes should be specified, depending if the collection is a map or a set.

name | The name of the collection to operate on. If the collection does not exists, an execption will be thrown.
[key] | The key to remove from the map. Invalid if the collection is a set.
[value] | The value to remove from the set. Invalid if the collection is a map.

#### destroy (content template)

Destroys the specified collection. The collection must exists or an exception will be thrown.

[name] | The collection to destroy.