org.apache.commons.math3.exception.util

## Class ExceptionContext

- java.lang.Object
- - org.apache.commons.math3.exception.util.ExceptionContext

All Implemented Interfaces:
  java.io.Serializable

    public class ExceptionContext
    extends java.lang.Object
    implements java.io.Serializable

Class that contains the actual implementation of the functionality mandated by the `ExceptionContext` interface. All Commons Math exceptions delegate the interface's methods to this class.

Since:
  3.0
Version:
  $Id: ExceptionContext.java 1364388 2012-07-22 18:16:43Z tn $
See Also:
  Serialized Form

### Field Summary

Fields
`private java.util.Map<java.lang.String,java.lang.Object>` `context` Arbitrary context information.
`private java.util.List<java.lang.Object[]>` `msgArguments` Various informations that enrich the informative message.
`private java.util.List<Localizable>` `msgPatterns` Various informations that enrich the informative message.
`private static long` `serialVersionUID` Serializable version Id.
`private java.lang.Throwable` `throwable` The throwable to which this context refers to.

### Constructor Summary

Constructors
Constructor and Description
`ExceptionContext(java.lang.Throwable throwable)` Simple constructor.

### Method Summary

Methods
`void` `addMessage(Localizable pattern, java.lang.Object... arguments)` Adds a message.
`private java.lang.String` `buildMessage(java.util.Locale locale, java.lang.String separator)` Builds a message string.
`private void` `deSerializeContext(java.io.ObjectInputStream in)` Deserialize `context`.
`private void` `deSerializeMessages(java.io.ObjectInputStream in)` Deserialize `msgPatterns` and `msgArguments`.
`java.util.Set<java.lang.String>` `getKeys()` Gets all the keys stored in the exception
`java.lang.String` `getLocalizedMessage()` Gets the message in the default locale.
`java.lang.String` `getMessage()` Gets the default message.
`java.lang.String` `getMessage(java.util.Locale locale)` Gets the message in a specified locale.
`java.lang.String` `getMessage(java.util.Locale locale, java.lang.String separator)` Gets the message in a specified locale.
`java.lang.Throwable` `getThrowable()` Get a reference to the exception to which the context relates.
`java.lang.Object` `getValue(java.lang.String key)` Gets the value associated to the given context key.
`private java.lang.String` `nonSerializableReplacement(java.lang.Object obj)` Replaces a non-serializable object with an error message string.
`private void` `readObject(java.io.ObjectInputStream in)` Deserialize this object from the given stream.
`private void` `serializeContext(java.io.ObjectOutputStream out)` Serialize `context`.
`private void` `serializeMessages(java.io.ObjectOutputStream out)` Serialize `msgPatterns` and `msgArguments`.
`void` `setValue(java.lang.String key, java.lang.Object value)` Sets the context (key, value) pair.
`private void` `writeObject(java.io.ObjectOutputStream out)` Serialize this object to the given stream.

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

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

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serializable version Id.

See Also:
  Constant Field Values

#### throwable

    private java.lang.Throwable throwable

The throwable to which this context refers to.

#### msgPatterns

    private java.util.List<Localizable> msgPatterns

Various informations that enrich the informative message.

#### msgArguments

    private java.util.List<java.lang.Object[]> msgArguments

Various informations that enrich the informative message. The arguments will replace the corresponding place-holders in `msgPatterns`.

#### context

    private java.util.Map<java.lang.String,java.lang.Object> context

Arbitrary context information.

### Constructor Detail

#### ExceptionContext

    public ExceptionContext(java.lang.Throwable throwable)

Simple constructor.

Parameters:
  `throwable` - the exception this context refers too

### Method Detail

#### getThrowable

    public java.lang.Throwable getThrowable()

Get a reference to the exception to which the context relates.

Returns:
  a reference to the exception to which the context relates

#### addMessage

    public void addMessage(Localizable pattern,
                  java.lang.Object... arguments)

Adds a message.

Parameters:
  `pattern` - Message pattern.
  `arguments` - Values for replacing the placeholders in the message pattern.

#### setValue

    public void setValue(java.lang.String key,
                java.lang.Object value)

Sets the context (key, value) pair. Keys are assumed to be unique within an instance. If the same key is assigned a new value, the previous one will be lost.

Parameters:
  `key` - Context key (not null).
  `value` - Context value.

#### getValue

    public java.lang.Object getValue(java.lang.String key)

Gets the value associated to the given context key.

Parameters:
  `key` - Context key.
Returns:
  the context value or `null` if the key does not exist.

#### getKeys

    public java.util.Set<java.lang.String> getKeys()

Gets all the keys stored in the exception

Returns:
  the set of keys.

#### getMessage

    public java.lang.String getMessage()

Gets the default message.

Returns:
  the message.

#### getLocalizedMessage

    public java.lang.String getLocalizedMessage()

Gets the message in the default locale.

Returns:
  the localized message.

#### getMessage

    public java.lang.String getMessage(java.util.Locale locale)

Gets the message in a specified locale.

Parameters:
  `locale` - Locale in which the message should be translated.
Returns:
  the localized message.

#### getMessage

    public java.lang.String getMessage(java.util.Locale locale,
                              java.lang.String separator)

Gets the message in a specified locale.

Parameters:
  `locale` - Locale in which the message should be translated.
  `separator` - Separator inserted between the message parts.
Returns:
  the localized message.

#### buildMessage

    private java.lang.String buildMessage(java.util.Locale locale,
                                java.lang.String separator)

Builds a message string.

Parameters:
  `locale` - Locale in which the message should be translated.
  `separator` - Message separator.
Returns:
  a localized message string.

#### writeObject

    private void writeObject(java.io.ObjectOutputStream out)
                      throws java.io.IOException

Serialize this object to the given stream.

Parameters:
  `out` - Stream.
Throws:
  `java.io.IOException` - This should never happen.

#### readObject

    private void readObject(java.io.ObjectInputStream in)
                     throws java.io.IOException,
                            java.lang.ClassNotFoundException

Deserialize this object from the given stream.

Parameters:
  `in` - Stream.
Throws:
  `java.io.IOException` - This should never happen.
  `java.lang.ClassNotFoundException` - This should never happen.

#### serializeMessages

    private void serializeMessages(java.io.ObjectOutputStream out)
                            throws java.io.IOException

Serialize `msgPatterns` and `msgArguments`.

Parameters:
  `out` - Stream.
Throws:
  `java.io.IOException` - This should never happen.

#### deSerializeMessages

    private void deSerializeMessages(java.io.ObjectInputStream in)
                              throws java.io.IOException,
                                     java.lang.ClassNotFoundException

Deserialize `msgPatterns` and `msgArguments`.

Parameters:
  `in` - Stream.
Throws:
  `java.io.IOException` - This should never happen.
  `java.lang.ClassNotFoundException` - This should never happen.

#### serializeContext

    private void serializeContext(java.io.ObjectOutputStream out)
                           throws java.io.IOException

Serialize `context`.

Parameters:
  `out` - Stream.
Throws:
  `java.io.IOException` - This should never happen.

#### deSerializeContext

    private void deSerializeContext(java.io.ObjectInputStream in)
                             throws java.io.IOException,
                                    java.lang.ClassNotFoundException

Deserialize `context`.

Parameters:
  `in` - Stream.
Throws:
  `java.io.IOException` - This should never happen.
  `java.lang.ClassNotFoundException` - This should never happen.

#### nonSerializableReplacement

    private java.lang.String nonSerializableReplacement(java.lang.Object obj)

Replaces a non-serializable object with an error message string.

Parameters:
  `obj` - Object that does not implement the `Serializable` interface.
Returns:
  a string that mentions which class could not be serialized.