org.codehaus.plexus.context

## Class DefaultContext

- java.lang.Object
- - org.codehaus.plexus.context.DefaultContext

All Implemented Interfaces:
  Context

    public class DefaultContext
    extends Object
    implements Context

Default implementation of Context. This implementation is a static hierarchial store. It has the normal `get()` and `put` methods. The `hide` method will hide a property. When a property has been hidden the context will not search in the parent context for the value.

Version:
  $Id: DefaultContext.java 1323 2004-12-20 23:00:59Z jvanzyl $
Author:
  Avalon Development Team

### Constructor Summary

Constructors
Constructor and Description
`DefaultContext()` Create a empty Context with no parent.
`DefaultContext(Context parent)` Create a Context with specified parent.
`DefaultContext(Map contextData)` Create a empty Context with specified data.
`DefaultContext(Map contextData, Context parent)` Create a Context with specified data and parent.

### Method Summary

Methods
`protected void` `checkWriteable()` Utility method to check if context is writeable and if not throw exception.
`boolean` `contains(Object key)` Returns true if the map or the parent map contains the key.
`Object` `get(Object key)` Returns the value of the key.
`protected Map` `getContextData()` Utility method to retrieve context data.
`protected Context` `getParent()` Get parent context if any.
`void` `hide(Object key)` Hides the item in the context.
`void` `makeReadOnly()` Make the context read-only.
`void` `put(Object key, Object value)` Helper method for adding items to Context.

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

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

### Constructor Detail

#### DefaultContext

    public DefaultContext(Map contextData,
                  Context parent)

Create a Context with specified data and parent.

Parameters:
  `contextData` - the context data
  `parent` - the parent Context (may be null)

#### DefaultContext

    public DefaultContext(Map contextData)

Create a empty Context with specified data.

Parameters:
  `contextData` - the context data

#### DefaultContext

    public DefaultContext(Context parent)

Create a Context with specified parent.

Parameters:
  `parent` - the parent Context (may be null)

#### DefaultContext

    public DefaultContext()

Create a empty Context with no parent.

### Method Detail

#### contains

    public boolean contains(Object key)

Returns true if the map or the parent map contains the key.

Specified by:
  `contains` in interface `Context`
Parameters:
  `key` - The key to search for.
Returns:
  Returns true if the key was found.

#### get

    public Object get(Object key)
               throws ContextException

Returns the value of the key. If the key can't be found it will throw a exception.

Specified by:
  `get` in interface `Context`
Parameters:
  `key` - The key of the value to look up.
Returns:
  Returns
Throws:
  `ContextException` - If the key doesn't exist.

#### put

    public void put(Object key,
           Object value)
             throws IllegalStateException

Helper method for adding items to Context.

Specified by:
  `put` in interface `Context`
Parameters:
  `key` - the items key
  `value` - the item
Throws:
  `IllegalStateException` - if context is read only

#### hide

    public void hide(Object key)
              throws IllegalStateException

Hides the item in the context. After remove(key) has been called, a get(key) will always fail, even if the parent context has such a mapping.

Specified by:
  `hide` in interface `Context`
Parameters:
  `key` - the items key
Throws:
  `IllegalStateException` - if context is read only

#### getContextData

    protected Map getContextData()

Utility method to retrieve context data.

Returns:
  the context data

#### getParent

    protected Context getParent()

Get parent context if any.

Returns:
  the parent Context (may be null)

#### makeReadOnly

    public void makeReadOnly()

Make the context read-only. Any attempt to write to the context via put() will result in an IllegalStateException.

Specified by:
  `makeReadOnly` in interface `Context`

#### checkWriteable

    protected void checkWriteable()
                           throws IllegalStateException

Utility method to check if context is writeable and if not throw exception.

Throws:
  `IllegalStateException` - if context is read only