class org.junit.jupiter.engine.execution.DefaultParameterContext implements org.junit.jupiter.api.extension.ParameterContext
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.junit.jupiter.engine.execution.DefaultParameterContext
  super_class: java.lang.Object
{
  private final java.lang.reflect.Parameter parameter;
    descriptor: Ljava/lang/reflect/Parameter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int index;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Optional<java.lang.Object> target;
    descriptor: Ljava/util/Optional;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Optional<Ljava/lang/Object;>;

  void <init>(java.lang.reflect.Parameter, int, java.util.Optional<java.lang.Object>);
    descriptor: (Ljava/lang/reflect/Parameter;ILjava/util/Optional;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
        start local 1 // java.lang.reflect.Parameter parameter
        start local 2 // int index
        start local 3 // java.util.Optional target
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            iload 2 /* index */
            iflt 2
            iconst_1
            goto 3
      StackMap locals: org.junit.jupiter.engine.execution.DefaultParameterContext java.lang.reflect.Parameter int java.util.Optional
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "index must be greater than or equal to zero"
            invokestatic org.junit.platform.commons.util.Preconditions.condition:(ZLjava/lang/String;)V
         4: .line 39
            aload 0 /* this */
            aload 1 /* parameter */
            ldc "parameter must not be null"
            invokestatic org.junit.platform.commons.util.Preconditions.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.reflect.Parameter
            putfield org.junit.jupiter.engine.execution.DefaultParameterContext.parameter:Ljava/lang/reflect/Parameter;
         5: .line 40
            aload 0 /* this */
            iload 2 /* index */
            putfield org.junit.jupiter.engine.execution.DefaultParameterContext.index:I
         6: .line 41
            aload 0 /* this */
            aload 3 /* target */
            ldc "target must not be null"
            invokestatic org.junit.platform.commons.util.Preconditions.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.util.Optional
            putfield org.junit.jupiter.engine.execution.DefaultParameterContext.target:Ljava/util/Optional;
         7: .line 42
            return
        end local 3 // java.util.Optional target
        end local 2 // int index
        end local 1 // java.lang.reflect.Parameter parameter
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;
            0    8     1  parameter  Ljava/lang/reflect/Parameter;
            0    8     2      index  I
            0    8     3     target  Ljava/util/Optional<Ljava/lang/Object;>;
    Signature: (Ljava/lang/reflect/Parameter;ILjava/util/Optional<Ljava/lang/Object;>;)V
    MethodParameters:
           Name  Flags
      parameter  
      index      
      target     

  public java.lang.reflect.Parameter getParameter();
    descriptor: ()Ljava/lang/reflect/Parameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
         0: .line 46
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.parameter:Ljava/lang/reflect/Parameter;
            areturn
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;

  public int getIndex();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
         0: .line 51
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.index:I
            ireturn
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;

  public java.util.Optional<java.lang.Object> getTarget();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
         0: .line 56
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.target:Ljava/util/Optional;
            areturn
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;
    Signature: ()Ljava/util/Optional<Ljava/lang/Object;>;

  public boolean isAnnotated(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
        start local 1 // java.lang.Class annotationType
         0: .line 61
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.execution.DefaultParameterContext.getEffectiveAnnotatedParameter:()Ljava/lang/reflect/AnnotatedElement;
            aload 1 /* annotationType */
            invokestatic org.junit.platform.commons.util.AnnotationUtils.isAnnotated:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class annotationType
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;
            0    1     1  annotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Z
    MethodParameters:
                Name  Flags
      annotationType  

  public <A extends java.lang.annotation.Annotation> java.util.Optional<A> findAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
        start local 1 // java.lang.Class annotationType
         0: .line 66
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.execution.DefaultParameterContext.getEffectiveAnnotatedParameter:()Ljava/lang/reflect/AnnotatedElement;
            aload 1 /* annotationType */
            invokestatic org.junit.platform.commons.util.AnnotationUtils.findAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/util/Optional;
            areturn
        end local 1 // java.lang.Class annotationType
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;
            0    1     1  annotationType  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)Ljava/util/Optional<TA;>;
    MethodParameters:
                Name  Flags
      annotationType  

  public <A extends java.lang.annotation.Annotation> java.util.List<A> findRepeatableAnnotations(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
        start local 1 // java.lang.Class annotationType
         0: .line 71
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.execution.DefaultParameterContext.getEffectiveAnnotatedParameter:()Ljava/lang/reflect/AnnotatedElement;
            aload 1 /* annotationType */
            invokestatic org.junit.platform.commons.util.AnnotationUtils.findRepeatableAnnotations:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/util/List;
            areturn
        end local 1 // java.lang.Class annotationType
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;
            0    1     1  annotationType  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)Ljava/util/List<TA;>;
    MethodParameters:
                Name  Flags
      annotationType  

  private java.lang.reflect.AnnotatedElement getEffectiveAnnotatedParameter();
    descriptor: ()Ljava/lang/reflect/AnnotatedElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
         0: .line 105
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.execution.DefaultParameterContext.getDeclaringExecutable:()Ljava/lang/reflect/Executable;
            astore 1 /* executable */
        start local 1 // java.lang.reflect.Executable executable
         1: .line 107
            aload 1 /* executable */
            instanceof java.lang.reflect.Constructor
            ifeq 8
            aload 1 /* executable */
            invokevirtual java.lang.reflect.Executable.getDeclaringClass:()Ljava/lang/Class;
            invokestatic org.junit.platform.commons.util.ReflectionUtils.isInnerClass:(Ljava/lang/Class;)Z
            ifeq 8
         2: .line 108
            aload 1 /* executable */
            invokevirtual java.lang.reflect.Executable.getParameterAnnotations:()[[Ljava/lang/annotation/Annotation;
            arraylength
            aload 1 /* executable */
            invokevirtual java.lang.reflect.Executable.getParameterCount:()I
            iconst_1
            isub
            if_icmpne 8
         3: .line 110
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.index:I
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: java.lang.reflect.Executable
      StackMap stack:
         4: iconst_0
         5: .line 111
      StackMap locals:
      StackMap stack: int
            ldc "A ParameterContext should never be created for parameter index 0 in an inner class constructor"
         6: .line 110
            invokestatic org.junit.platform.commons.util.Preconditions.condition:(ZLjava/lang/String;)V
         7: .line 113
            aload 1 /* executable */
            invokevirtual java.lang.reflect.Executable.getParameters:()[Ljava/lang/reflect/Parameter;
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.index:I
            iconst_1
            isub
            aaload
            areturn
         8: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.parameter:Ljava/lang/reflect/Parameter;
            areturn
        end local 1 // java.lang.reflect.Executable executable
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;
            1    9     1  executable  Ljava/lang/reflect/Executable;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
         0: .line 122
            new org.junit.platform.commons.util.ToStringBuilder
            dup
            aload 0 /* this */
            invokespecial org.junit.platform.commons.util.ToStringBuilder.<init>:(Ljava/lang/Object;)V
         1: .line 123
            ldc "parameter"
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.parameter:Ljava/lang/reflect/Parameter;
            invokevirtual org.junit.platform.commons.util.ToStringBuilder.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/junit/platform/commons/util/ToStringBuilder;
         2: .line 124
            ldc "index"
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.index:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.junit.platform.commons.util.ToStringBuilder.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/junit/platform/commons/util/ToStringBuilder;
         3: .line 125
            ldc "target"
            aload 0 /* this */
            getfield org.junit.jupiter.engine.execution.DefaultParameterContext.target:Ljava/util/Optional;
            invokevirtual org.junit.platform.commons.util.ToStringBuilder.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/junit/platform/commons/util/ToStringBuilder;
         4: .line 126
            invokevirtual org.junit.platform.commons.util.ToStringBuilder.toString:()Ljava/lang/String;
         5: .line 122
            areturn
        end local 0 // org.junit.jupiter.engine.execution.DefaultParameterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/junit/jupiter/engine/execution/DefaultParameterContext;
}
SourceFile: "DefaultParameterContext.java"