# Annotation Interface Enabled

@Target(TYPE) @Retention(RUNTIME) @Inherited public @interface Enabled
Event annotation, determines if an event should be enabled by default.

If an event doesn't have the annotation, then by default the event is enabled.

The following example shows how the `Enabled` annotation can be used to create a disabled event. A disabled event will at most have the overhead of an allocation, or none if the runtime JIT compiler is able to eliminate it.

    @Name("StopWatch")
    @Label("Stop Watch")
    @Category("Debugging")
    @StackTrace(false)
    @Enabled(false)
    public static class StopWatchEvent extends Event {
    }

    public void update() {
        StopWatchEvent e = new StopWatchEvent();
        e.begin();
        ...
        e.commit();
    }

The event can be enabled programmatically, or on command line when needed, for example:

    java -XX:StartFlightRecording:StopWatch#enabled=true ...

Since:
  9

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`NAME`
Setting name `"enabled"`, signifies that the event should be recorded.

## Optional Element Summary

Optional Elements
Modifier and Type
Optional Element
Description
`boolean`
`value`
Returns `true` if by default the event should be enabled, `false` otherwise.

## Field Details

### NAME

static final String NAME
Setting name `"enabled"`, signifies that the event should be recorded.

See Also:
  - Constant Field Values

## Element Details

### value

boolean value
Returns `true` if by default the event should be enabled, `false` otherwise.

Returns:
  `true` if by default the event should be enabled, `false` otherwise

Default:
  `true`