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

Modifier and Type
Method
Description
`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 Details

### 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.