# Class EventType

java.lang.Object
jdk.jfr.EventType

public final class EventType extends Object
Describes an event, its fields, settings and annotations.

The following example shows how the `EventType` class can be used to print metadata about an event.

    for (EventType eventType : FlightRecorder.getFlightRecorder().getEventTypes()) {
        System.out.println("Event Type: " + eventType.getName());
        if (eventType.getLabel() != null) {
            System.out.println("Label: " + eventType.getLabel());
        }
        if (eventType.getDescription() != null) {
            System.out.println("Description: " + eventType.getDescription());
        }
        StringJoiner s = new StringJoiner(" / ");
        for (String category : eventType.getCategoryNames()) {
            s.add(category);
        }
        System.out.println("Category: " + s);
        System.out.println("Fields: " + eventType.getFields().size());
        System.out.println("Annotations: " + eventType.getAnnotationElements().size());
        System.out.println("Settings: " + eventType.getSettingDescriptors().size());
        System.out.println("Enabled: " + eventType.isEnabled());
        System.out.println();
    }

Since:
  9

## Method Summary

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

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

It's possible to index into a nested field by using `"."` (for instance `"thread.group.parent.name`").

Parameters:
  `name` - of the field to get, not `null`
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`