org.jboss.logmanager

## Interface Protectable

All Known Implementing Classes:
  AsyncHandler, ConsoleHandler, ExtHandler, FileHandler, LogContext, NullHandler, OutputStreamHandler, PeriodicRotatingFileHandler, PeriodicSizeRotatingFileHandler, QueueHandler, SizeRotatingFileHandler, SyslogHandler, WriterHandler

    public interface Protectable

Allows objects to be locked for modification.

When an object is `protected`, modifications to the object are not allowed. To allow modifications for the object, the `enableAccess(Object)` or the `unprotect(Object)` methods must be invoked.

To protect the object after `enabling` access, invoke the `disableAccess()` access.

Note that `enabling` or `disabling` access only applies to the current thread.

Author:
  James R. Perkins

### Method Summary

Methods
`void` `disableAccess()` Disable previous access to the object for modifications on the current thread.
`void` `enableAccess(Object protectKey)` Enable access to the object for modifications on the current thread.
`void` `protect(Object protectionKey)` Protect this object from modifications.
`void` `unprotect(Object protectionKey)` Allows the object to be modified if the `protectionKey` matches the key used to `protect` the object.

### Method Detail

#### protect

    void protect(Object protectionKey)
                 throws SecurityException

Protect this object from modifications.

Parameters:
  `protectionKey` - the key used to protect the object.
Throws:
  `SecurityException` - if the object is already protected.

#### unprotect

    void unprotect(Object protectionKey)
                   throws SecurityException

Allows the object to be modified if the `protectionKey` matches the key used to `protect` the object.

Parameters:
  `protectionKey` - the key used to protect the object.
Throws:
  `SecurityException` - if the object is protected and the key doesn't match.

#### enableAccess

    void enableAccess(Object protectKey)

Enable access to the object for modifications on the current thread.

Parameters:
  `protectKey` - the key used to `protect` modifications.

#### disableAccess

    void disableAccess()

Disable previous access to the object for modifications on the current thread.