public interface org.junit.jupiter.api.extension.ExtensionContext
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: org.junit.jupiter.api.extension.ExtensionContext
  super_class: java.lang.Object
{
  public abstract java.util.Optional<org.junit.jupiter.api.extension.ExtensionContext> getParent();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Lorg/junit/jupiter/api/extension/ExtensionContext;>;

  public abstract org.junit.jupiter.api.extension.ExtensionContext getRoot();
    descriptor: ()Lorg/junit/jupiter/api/extension/ExtensionContext;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getUniqueId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getDisplayName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.util.Set<java.lang.String> getTags();
    descriptor: ()Ljava/util/Set;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public abstract java.util.Optional<java.lang.reflect.AnnotatedElement> getElement();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Ljava/lang/reflect/AnnotatedElement;>;

  public abstract java.util.Optional<java.lang.Class<?>> getTestClass();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Ljava/lang/Class<*>;>;

  public java.lang.Class<?> getRequiredTestClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.junit.jupiter.api.extension.ExtensionContext this
         0: .line 141
            aload 0 /* this */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getTestClass:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
         1: .line 142
            ldc "Illegal state: required test class is not present in the current ExtensionContext"
         2: .line 141
            invokestatic org.junit.platform.commons.util.Preconditions.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Class
            areturn
        end local 0 // org.junit.jupiter.api.extension.ExtensionContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Signature: ()Ljava/lang/Class<*>;

  public abstract java.util.Optional<org.junit.jupiter.api.TestInstance$Lifecycle> getTestInstanceLifecycle();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Lorg/junit/jupiter/api/TestInstance$Lifecycle;>;
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.STABLE:Lorg/apiguardian/api/API$Status;, since = "5.1")

  public abstract java.util.Optional<java.lang.Object> getTestInstance();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Ljava/lang/Object;>;

  public java.lang.Object getRequiredTestInstance();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.junit.jupiter.api.extension.ExtensionContext this
         0: .line 182
            aload 0 /* this */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getTestInstance:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
         1: .line 183
            ldc "Illegal state: required test instance is not present in the current ExtensionContext"
         2: .line 182
            invokestatic org.junit.platform.commons.util.Preconditions.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 0 // org.junit.jupiter.api.extension.ExtensionContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/junit/jupiter/api/extension/ExtensionContext;

  public abstract java.util.Optional<org.junit.jupiter.api.extension.TestInstances> getTestInstances();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Lorg/junit/jupiter/api/extension/TestInstances;>;
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.STABLE:Lorg/apiguardian/api/API$Status;, since = "5.7")

  public org.junit.jupiter.api.extension.TestInstances getRequiredTestInstances();
    descriptor: ()Lorg/junit/jupiter/api/extension/TestInstances;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.junit.jupiter.api.extension.ExtensionContext this
         0: .line 217
            aload 0 /* this */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getTestInstances:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.junit.jupiter.api.extension.TestInstances
         1: .line 218
            ldc "Illegal state: required test instances are not present in the current ExtensionContext"
         2: .line 217
            invokestatic org.junit.platform.commons.util.Preconditions.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.junit.jupiter.api.extension.TestInstances
            areturn
        end local 0 // org.junit.jupiter.api.extension.ExtensionContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/junit/jupiter/api/extension/ExtensionContext;
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.STABLE:Lorg/apiguardian/api/API$Status;, since = "5.7")

  public abstract java.util.Optional<java.lang.reflect.Method> getTestMethod();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Ljava/lang/reflect/Method;>;

  public java.lang.reflect.Method getRequiredTestMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.junit.jupiter.api.extension.ExtensionContext this
         0: .line 242
            aload 0 /* this */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getTestMethod:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
         1: .line 243
            ldc "Illegal state: required test method is not present in the current ExtensionContext"
         2: .line 242
            invokestatic org.junit.platform.commons.util.Preconditions.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            areturn
        end local 0 // org.junit.jupiter.api.extension.ExtensionContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/junit/jupiter/api/extension/ExtensionContext;

  public abstract java.util.Optional<java.lang.Throwable> getExecutionException();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Ljava/lang/Throwable;>;

  public abstract java.util.Optional<java.lang.String> getConfigurationParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.STABLE:Lorg/apiguardian/api/API$Status;, since = "5.1")
    MethodParameters:
      Name  Flags
      key   

  public abstract <T> java.util.Optional<T> getConfigurationParameter(java.lang.String, java.util.function.Function<java.lang.String, T>);
    descriptor: (Ljava/lang/String;Ljava/util/function/Function;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/util/function/Function<Ljava/lang/String;TT;>;)Ljava/util/Optional<TT;>;
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.EXPERIMENTAL:Lorg/apiguardian/api/API$Status;, since = "5.7")
    MethodParameters:
             Name  Flags
      key          
      transformer  

  public abstract void publishReportEntry(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      map   

  public void publishReportEntry(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.junit.jupiter.api.extension.ExtensionContext this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 346
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* value */
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.publishReportEntry:(Ljava/util/Map;)V
         1: .line 347
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // org.junit.jupiter.api.extension.ExtensionContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    2     1    key  Ljava/lang/String;
            0    2     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      key    
      value  

  public void publishReportEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.junit.jupiter.api.extension.ExtensionContext this
        start local 1 // java.lang.String value
         0: .line 366
            aload 0 /* this */
            ldc "value"
            aload 1 /* value */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.publishReportEntry:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 367
            return
        end local 1 // java.lang.String value
        end local 0 // org.junit.jupiter.api.extension.ExtensionContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    2     1  value  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.STABLE:Lorg/apiguardian/api/API$Status;, since = "5.3")
    MethodParameters:
       Name  Flags
      value  

  public abstract org.junit.jupiter.api.extension.ExtensionContext$Store getStore(org.junit.jupiter.api.extension.ExtensionContext$Namespace);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;)Lorg/junit/jupiter/api/extension/ExtensionContext$Store;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      namespace  
}
SourceFile: "ExtensionContext.java"
NestMembers:
  org.junit.jupiter.api.extension.ExtensionContext$Namespace  org.junit.jupiter.api.extension.ExtensionContext$Store  org.junit.jupiter.api.extension.ExtensionContext$Store$CloseableResource
InnerClasses:
  public final Status = org.apiguardian.api.API$Status of org.apiguardian.api.API
  public final Lifecycle = org.junit.jupiter.api.TestInstance$Lifecycle of org.junit.jupiter.api.TestInstance
  public Namespace = org.junit.jupiter.api.extension.ExtensionContext$Namespace of org.junit.jupiter.api.extension.ExtensionContext
  public abstract Store = org.junit.jupiter.api.extension.ExtensionContext$Store of org.junit.jupiter.api.extension.ExtensionContext
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.STABLE:Lorg/apiguardian/api/API$Status;, since = "5.0")