# Interface ClassUnloadRequest

All Superinterfaces:
  `EventRequest, Mirror`

public interface ClassUnloadRequest extends EventRequest
Request for notification when a class is unloaded in the target VM. When an enabled ClassUnloadRequest is satisfied, a `event set` containing an `ClassUnloadEvent` will be placed on the `EventQueue`. The collection of existing ClassUnloadRequests is managed by the `EventRequestManager`

Refer to the Java Virtual Machine Specification for more information on class unloading.

Since:
  1.3
See Also:
  - `ClassUnloadEvent`
  - `EventQueue`
  - `EventRequestManager`

## Field Summary

### Fields declared in interface EventRequest

`SUSPEND_ALL, SUSPEND_EVENT_THREAD, SUSPEND_NONE`
Modifier and Type
Field
Description
`static final int`
`SUSPEND_ALL`
Suspend all threads when the event occurs
`static final int`
`SUSPEND_EVENT_THREAD`
Suspend only the thread which generated the event when the event occurs
`static final int`
`SUSPEND_NONE`
Suspend no threads when the event occurs

## Method Summary

Modifier and Type
Method
Description
`void`
`addClassExclusionFilter(String classPattern)`
Restricts the events generated by this request to the unloading of reference types whose name does not match a restricted regular expression.
`void`
`addClassFilter(String classPattern)`
Restricts the events generated by this request to the unloading of reference types whose name matches a restricted regular expression.

### Methods declared in interface EventRequest

`addCountFilter, disable, enable, getProperty, isEnabled, putProperty, setEnabled, setSuspendPolicy, suspendPolicy`
Modifier and Type
Method
Description
`void`
`addCountFilter(int count)`
Limit the requested event to be reported at most once after a given number of occurrences.
`void`
`disable()`
Same as `setEnabled(false)`.
`void`
`enable()`
Same as `setEnabled(true)`.
`Object`
`getProperty(Object key)`
Returns the value of the property with the specified key.
`boolean`
`isEnabled()`
Determines if this event request is currently enabled.
`void`
`putProperty(Object key, Object value)`
Add an arbitrary key/value "property" to this request.
`void`
`setEnabled(boolean val)`
Enables or disables this event request.
`void`
`setSuspendPolicy(int policy)`
Determines the threads to suspend when the requested event occurs in the target VM.
`int`
`suspendPolicy()`
Returns a value which describes the threads to suspend when the requested event occurs in the target VM.

### Methods declared in interface Mirror

`toString, virtualMachine`
Modifier and Type
Method
Description
`String`
`toString()`
Returns a String describing this mirror
`VirtualMachine`
`virtualMachine()`
Gets the VirtualMachine to which this Mirror belongs.

## Method Details

### addClassFilter

void addClassFilter(String classPattern)
Restricts the events generated by this request to the unloading of reference types whose name matches a restricted regular expression. Regular expressions are limited to exact matches and patterns that begin with '*' or end with '*'; for example, "*.Foo" or "java.*".

Parameters:
  `classPattern` - the pattern String to filter for.
Throws:
  `InvalidRequestStateException` - if this request is currently enabled or has been deleted. Filters may be added only to disabled requests.

### addClassExclusionFilter

void addClassExclusionFilter(String classPattern)
Restricts the events generated by this request to the unloading of reference types whose name does not match a restricted regular expression. Regular expressions are limited to exact matches and patterns that begin with '*' or end with '*'; for example, "*.Foo" or "java.*".

Parameters:
  `classPattern` - the pattern String to filter against.
Throws:
  `InvalidRequestStateException` - if this request is currently enabled or has been deleted. Filters may be added only to disabled requests.