Package org.apache.commons.math3.util

# Class TransformerMap

java.lang.Object
org.apache.commons.math3.util.TransformerMap

All Implemented Interfaces:
  `Serializable`, `NumberTransformer`

public class TransformerMap extends Object implements NumberTransformer, Serializable
This TansformerMap automates the transformation of mixed object types. It provides a means to set NumberTransformers that will be selected based on the Class of the object handed to the Maps `double transform(Object o)` method.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`TransformerMap()`
Build a map containing only the default transformer.

## Method Summary

Modifier and Type
Method
Description
`Set<Class<?>>`
`classes()`
Returns the Set of Classes used as keys in the map.
`void`
`clear()`
Clears all the Class to Transformer mappings.
`boolean`
`containsClass(Class<?> key)`
Tests if a Class is present in the TransformerMap.
`boolean`
`containsTransformer(NumberTransformer value)`
Tests if a NumberTransformer is present in the TransformerMap.
`boolean`
`equals(Object other)`
`NumberTransformer`
`getTransformer(Class<?> key)`
Returns the Transformer that is mapped to a class if mapping is not present, this returns null.
`int`
`hashCode()`
`NumberTransformer`
`putTransformer(Class<?> key, NumberTransformer transformer)`
Sets a Class to Transformer Mapping in the Map.
`NumberTransformer`
`removeTransformer(Class<?> key)`
Removes a Class to Transformer Mapping in the Map.
`double`
`transform(Object o)`
Attempts to transform the Object against the map of NumberTransformers.
`Collection<NumberTransformer>`
`transformers()`
Returns the Set of NumberTransformers used as values in the map.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TransformerMap

public TransformerMap()
Build a map containing only the default transformer.

## Method Details

### containsClass

public boolean containsClass(Class<?> key)
Tests if a Class is present in the TransformerMap.

Parameters:
  `key` - Class to check
Returns:
  true|false

### containsTransformer

public boolean containsTransformer(NumberTransformer value)
Tests if a NumberTransformer is present in the TransformerMap.

Parameters:
  `value` - NumberTransformer to check
Returns:
  true|false

### getTransformer

public NumberTransformer getTransformer(Class<?> key)
Returns the Transformer that is mapped to a class if mapping is not present, this returns null.

Parameters:
  `key` - The Class of the object
Returns:
  the mapped NumberTransformer or null.

### putTransformer

public NumberTransformer putTransformer(Class<?> key, NumberTransformer transformer)
Sets a Class to Transformer Mapping in the Map. If the Class is already present, this overwrites that mapping.

Parameters:
  `key` - The Class
  `transformer` - The NumberTransformer
Returns:
  the replaced transformer if one is present

### removeTransformer

public NumberTransformer removeTransformer(Class<?> key)
Removes a Class to Transformer Mapping in the Map.

Parameters:
  `key` - The Class
Returns:
  the removed transformer if one is present or null if none was present.

### clear

public void clear()
Clears all the Class to Transformer mappings.

### classes

public Set<Class<?>> classes()
Returns the Set of Classes used as keys in the map.

Returns:
  Set of Classes

### transformers

public Collection<NumberTransformer> transformers()
Returns the Set of NumberTransformers used as values in the map.

Returns:
  Set of NumberTransformers

### transform

public double transform(Object o) throws MathIllegalArgumentException
Attempts to transform the Object against the map of NumberTransformers. Otherwise it returns Double.NaN.

Specified by:
  `transform` in interface `NumberTransformer`
Parameters:
  `o` - the Object to be transformed.
Returns:
  the double value of the Object.
Throws:
  `MathIllegalArgumentException` - if the Object can not be transformed into a Double.
See Also:
  - `NumberTransformer.transform(java.lang.Object)`

### equals

public boolean equals(Object other)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`