Package org.jboss.logmanager

## Interface Protectable

All Known Implementing Classes:
  `AsyncHandler`, `ConsoleHandler`, `DelayedHandler`, `ExtHandler`, `FileHandler`, `LogContext`, `NullHandler`, `OutputStreamHandler`, `PeriodicRotatingFileHandler`, `PeriodicSizeRotatingFileHandler`, `QueueHandler`, `SizeRotatingFileHandler`, `SocketHandler`, `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

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

### Method Detail

#### protect

    void protect​(java.lang.Object protectionKey)
          throws java.lang.SecurityException

Protect this object from modifications.

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

#### unprotect

    void unprotect​(java.lang.Object protectionKey)
            throws java.lang.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:
  `java.lang.SecurityException` - if the object is protected and the key doesn't match.

#### enableAccess

    void enableAccess​(java.lang.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.