Module jdk.jfr
Package jdk.jfr

## Class EventType

- java.lang.Object
- - jdk.jfr.EventType

    public final class EventType
    extends Object

Describes an event, its fields, settings and annotations.

Since:
  9

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`<A extends Annotation> A` `getAnnotation​(Class<A> annotationClass)` Returns the first annotation for the specified type if an annotation element with the same name is directly present, otherwise `null`.
`List<AnnotationElement>` `getAnnotationElements()` Returns an immutable list of annotation elements for this event type.
`List<String>` `getCategoryNames()` Returns the list of human-readable names that makes up the categories for this event type (for example, `"Java Application"`, `"Statistics"`).
`String` `getDescription()` Returns a short sentence that describes the event class.
`static EventType` `getEventType​(Class<? extends Event> eventClass)` Returns the event type for an event class, or `null` if it doesn't exist.
`ValueDescriptor` `getField​(String name)` Returns the field with the specified name, or `null` if it doesn't exist.
`List<ValueDescriptor>` `getFields()` Returns an immutable list of descriptors that describe the event fields of this event type.
`long` `getId()` Returns a unique ID for this event type in the Java Virtual Machine (JVM).
`String` `getLabel()` Returns a human-readable name (for example, `"CPU Load"`).
`String` `getName()` Returns an identifier for the event (for example, `"jdk.CPULoad"`).
`List<SettingDescriptor>` `getSettingDescriptors()` Returns an immutable list of the setting descriptors that describe the available event settings for this event type.
`boolean` `isEnabled()` Returns `true` if the event is enabled and at least one recording is running, `false` otherwise.

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### getFields

    public List<ValueDescriptor> getFields()

Returns an immutable list of descriptors that describe the event fields of this event type.

Returns:
  the list of field descriptors, not `null`

#### getField

    public ValueDescriptor getField​(String name)

Returns the field with the specified name, or `null` if it doesn't exist.

Returns:
  a value descriptor that describes the field, or `null` if the field with the specified name doesn't exist

#### getName

    public String getName()

Returns an identifier for the event (for example, `"jdk.CPULoad"`).

The identifier is the fully qualified name of the event class, if not set using the `Name` annotation.

Returns:
  the name, not `null`
See Also:
  `Name`

#### getLabel

    public String getLabel()

Returns a human-readable name (for example, `"CPU Load"`).

The label of an event class can be set with `Label`.

Returns:
  the label, or `null` if a label is not set
See Also:
  `Label`

#### getId

    public long getId()

Returns a unique ID for this event type in the Java Virtual Machine (JVM).

Returns:
  the ID that is used in the JVM

#### getAnnotationElements

    public List<AnnotationElement> getAnnotationElements()

Returns an immutable list of annotation elements for this event type.

Returns:
  an immutable list of annotations or an empty list if no annotations exists, not `null`

#### isEnabled

    public boolean isEnabled()

Returns `true` if the event is enabled and at least one recording is running, `false` otherwise.

By default, the event is enabled. The event can be enabled or disabled by setting the enabled setting to `true` or `false`, programmatically or by using a configuration file. The event can also be disabled by annotating event with the `@Enabled(false)` annotation.

Returns:
  true if event is enabled, false otherwise
See Also:
  `Enabled`, `Recording.enable(Class)`

#### getDescription

    public String getDescription()

Returns a short sentence that describes the event class.

The description of an event class can be set with `Description`.

Returns:
  the description, or `null` if no description exists
See Also:
  `Description`

#### getAnnotation

    public <A extends Annotation> A getAnnotation​(Class<A> annotationClass)

Returns the first annotation for the specified type if an annotation element with the same name is directly present, otherwise `null`.

Type Parameters:
  `A` - the type of the annotation to query for and return if present
Parameters:
  `annotationClass` - the `Class` object that corresponds to the annotation type, not `null`
Returns:
  this element's annotation for the specified annotation type if directly present, else `null`

#### getEventType

    public static EventType getEventType​(Class<? extends Event> eventClass)

Returns the event type for an event class, or `null` if it doesn't exist.

Parameters:
  `eventClass` - the event class, not `null`
Returns:
  the event class, or null if class doesn't exist
Throws:
  `IllegalArgumentException` - if `eventClass` is an abstract class
  `IllegalStateException` - if the class is annotated with `Registered(false)`, but not manually registered

#### getSettingDescriptors

    public List<SettingDescriptor> getSettingDescriptors()

Returns an immutable list of the setting descriptors that describe the available event settings for this event type.

Returns:
  the list of setting descriptors for this event type, not `null`

#### getCategoryNames

    public List<String> getCategoryNames()

Returns the list of human-readable names that makes up the categories for this event type (for example, `"Java Application"`, `"Statistics"`).

Returns:
  an immutable list of category names, or a list with the name `"Uncategorized"` if no category is set
See Also:
  `Category`