final class org.apache.tomcat.util.descriptor.web.CallMethodMultiRule extends org.apache.tomcat.util.digester.CallMethodRule
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.tomcat.util.descriptor.web.CallMethodMultiRule
  super_class: org.apache.tomcat.util.digester.CallMethodRule
{
  final int multiParamIndex;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  public void <init>(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.tomcat.util.descriptor.web.CallMethodMultiRule this
        start local 1 // java.lang.String methodName
        start local 2 // int paramCount
        start local 3 // int multiParamIndex
         0: .line 1003
            aload 0 /* this */
            aload 1 /* methodName */
            iload 2 /* paramCount */
            invokespecial org.apache.tomcat.util.digester.CallMethodRule.<init>:(Ljava/lang/String;I)V
         1: .line 1004
            aload 0 /* this */
            iload 3 /* multiParamIndex */
            putfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
         2: .line 1005
            return
        end local 3 // int multiParamIndex
        end local 2 // int paramCount
        end local 1 // java.lang.String methodName
        end local 0 // org.apache.tomcat.util.descriptor.web.CallMethodMultiRule this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/apache/tomcat/util/descriptor/web/CallMethodMultiRule;
            0    3     1       methodName  Ljava/lang/String;
            0    3     2       paramCount  I
            0    3     3  multiParamIndex  I
    MethodParameters:
                 Name  Flags
      methodName       
      paramCount       
      multiParamIndex  

  public void end(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.apache.tomcat.util.descriptor.web.CallMethodMultiRule this
        start local 1 // java.lang.String namespace
        start local 2 // java.lang.String name
         0: .line 1020
            aconst_null
            astore 3 /* parameters */
        start local 3 // java.lang.Object[] parameters
         1: .line 1021
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramCount:I
            ifle 4
         2: .line 1022
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            invokevirtual org.apache.tomcat.util.digester.Digester.popParams:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 3 /* parameters */
         3: .line 1023
            goto 6
         4: .line 1024
      StackMap locals: java.lang.Object[]
      StackMap stack:
            iconst_0
            anewarray java.lang.Object
            astore 3 /* parameters */
         5: .line 1025
            aload 0 /* this */
            aload 1 /* namespace */
            aload 2 /* name */
            invokespecial org.apache.tomcat.util.digester.CallMethodRule.end:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 1028
      StackMap locals:
      StackMap stack:
            aload 3 /* parameters */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
            aaload
            checkcast java.util.ArrayList
            astore 4 /* multiParams */
        start local 4 // java.util.ArrayList multiParams
         7: .line 1033
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
            arraylength
            anewarray java.lang.Object
            astore 5 /* paramValues */
        start local 5 // java.lang.Object[] paramValues
         8: .line 1034
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         9: goto 19
        10: .line 1035
      StackMap locals: java.util.ArrayList java.lang.Object[] int
      StackMap stack:
            iload 6 /* i */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
            if_icmpeq 18
        11: .line 1038
            aload 3 /* parameters */
            iload 6 /* i */
            aaload
            ifnull 13
            aload 3 /* parameters */
            iload 6 /* i */
            aaload
            instanceof java.lang.String
            ifeq 17
        12: .line 1039
            ldc Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
            iload 6 /* i */
            aaload
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 17
        13: .line 1040
      StackMap locals:
      StackMap stack:
            aload 5 /* paramValues */
            iload 6 /* i */
        14: .line 1041
            aload 3 /* parameters */
            iload 6 /* i */
            aaload
            checkcast java.lang.String
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
            iload 6 /* i */
            aaload
            invokestatic org.apache.tomcat.util.IntrospectionUtils.convert:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
        15: .line 1040
            aastore
        16: .line 1042
            goto 18
        17: .line 1043
      StackMap locals:
      StackMap stack:
            aload 5 /* paramValues */
            iload 6 /* i */
            aload 3 /* parameters */
            iload 6 /* i */
            aaload
            aastore
        18: .line 1034
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
            arraylength
            if_icmplt 10
        end local 6 // int i
        20: .line 1050
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.targetOffset:I
            iflt 23
        21: .line 1051
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.targetOffset:I
            invokevirtual org.apache.tomcat.util.digester.Digester.peek:(I)Ljava/lang/Object;
            astore 6 /* target */
        start local 6 // java.lang.Object target
        22: .line 1052
            goto 24
        end local 6 // java.lang.Object target
        23: .line 1053
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            invokevirtual org.apache.tomcat.util.digester.Digester.getCount:()I
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.targetOffset:I
            iadd
            invokevirtual org.apache.tomcat.util.digester.Digester.peek:(I)Ljava/lang/Object;
            astore 6 /* target */
        start local 6 // java.lang.Object target
        24: .line 1056
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* target */
            ifnonnull 35
        25: .line 1057
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* sb */
        start local 7 // java.lang.StringBuilder sb
        26: .line 1058
            aload 7 /* sb */
            ldc "[CallMethodRule]{"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        27: .line 1059
            aload 7 /* sb */
            ldc ""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 1060
            aload 7 /* sb */
            ldc "} Call target is null ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 1061
            aload 7 /* sb */
            ldc "targetOffset="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 1062
            aload 7 /* sb */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.targetOffset:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        31: .line 1063
            aload 7 /* sb */
            ldc ",stackdepth="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        32: .line 1064
            aload 7 /* sb */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            invokevirtual org.apache.tomcat.util.digester.Digester.getCount:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        33: .line 1065
            aload 7 /* sb */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        34: .line 1066
            new org.xml.sax.SAXException
            dup
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.xml.sax.SAXException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.StringBuilder sb
        35: .line 1069
      StackMap locals:
      StackMap stack:
            aload 4 /* multiParams */
            ifnonnull 41
        36: .line 1070
            aload 5 /* paramValues */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
            aconst_null
            aastore
        37: .line 1071
            aload 6 /* target */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.methodName:Ljava/lang/String;
            aload 5 /* paramValues */
        38: .line 1072
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
        39: .line 1071
            invokestatic org.apache.tomcat.util.IntrospectionUtils.callMethodN:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/Class;)Ljava/lang/Object;
            pop
        40: .line 1073
            return
        41: .line 1076
      StackMap locals:
      StackMap stack:
            aload 4 /* multiParams */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 69
      StackMap locals: org.apache.tomcat.util.descriptor.web.CallMethodMultiRule java.lang.String java.lang.String java.lang.Object[] java.util.ArrayList java.lang.Object[] java.lang.Object top java.util.Iterator
      StackMap stack:
        42: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* param */
        start local 7 // java.lang.Object param
        43: .line 1077
            aload 7 /* param */
            ifnull 45
            aload 7 /* param */
            instanceof java.lang.String
            ifeq 49
        44: .line 1078
            ldc Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
            aaload
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 49
        45: .line 1079
      StackMap locals: org.apache.tomcat.util.descriptor.web.CallMethodMultiRule java.lang.String java.lang.String java.lang.Object[] java.util.ArrayList java.lang.Object[] java.lang.Object java.lang.Object java.util.Iterator
      StackMap stack:
            aload 5 /* paramValues */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
        46: .line 1080
            aload 7 /* param */
            checkcast java.lang.String
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
            aaload
            invokestatic org.apache.tomcat.util.IntrospectionUtils.convert:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
        47: .line 1079
            aastore
        48: .line 1081
            goto 50
        49: .line 1082
      StackMap locals:
      StackMap stack:
            aload 5 /* paramValues */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.multiParamIndex:I
            aload 7 /* param */
            aastore
        50: .line 1084
      StackMap locals:
      StackMap stack:
            aload 6 /* target */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.methodName:Ljava/lang/String;
            aload 5 /* paramValues */
        51: .line 1085
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.paramTypes:[Ljava/lang/Class;
        52: .line 1084
            invokestatic org.apache.tomcat.util.IntrospectionUtils.callMethodN:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/Class;)Ljava/lang/Object;
            pop
        53: .line 1087
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            astore 9 /* code */
        start local 9 // java.lang.StringBuilder code
        54: .line 1088
            aload 9 /* code */
            ifnull 69
        55: .line 1089
            aload 9 /* code */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            aload 6 /* target */
            invokevirtual org.apache.tomcat.util.digester.Digester.toVariableName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.methodName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        56: .line 1090
            aload 9 /* code */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        57: .line 1091
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        58: goto 66
        59: .line 1092
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 10 /* i */
            ifle 61
        60: .line 1093
            aload 9 /* code */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        61: .line 1095
      StackMap locals:
      StackMap stack:
            aload 5 /* paramValues */
            iload 10 /* i */
            aaload
            instanceof java.lang.String
            ifeq 64
        62: .line 1096
            aload 9 /* code */
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* paramValues */
            iload 10 /* i */
            aaload
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        63: .line 1097
            goto 65
        64: .line 1098
      StackMap locals:
      StackMap stack:
            aload 9 /* code */
            aload 0 /* this */
            getfield org.apache.tomcat.util.descriptor.web.CallMethodMultiRule.digester:Lorg/apache/tomcat/util/digester/Digester;
            aload 5 /* paramValues */
            iload 10 /* i */
            aaload
            invokevirtual org.apache.tomcat.util.digester.Digester.toVariableName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        65: .line 1091
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        66: iload 10 /* i */
            aload 5 /* paramValues */
            arraylength
            if_icmplt 59
        end local 10 // int i
        67: .line 1101
            aload 9 /* code */
            ldc ");"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        68: .line 1102
            aload 9 /* code */
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // java.lang.StringBuilder code
        end local 7 // java.lang.Object param
        69: .line 1076
      StackMap locals: org.apache.tomcat.util.descriptor.web.CallMethodMultiRule java.lang.String java.lang.String java.lang.Object[] java.util.ArrayList java.lang.Object[] java.lang.Object top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 42
        70: .line 1106
            return
        end local 6 // java.lang.Object target
        end local 5 // java.lang.Object[] paramValues
        end local 4 // java.util.ArrayList multiParams
        end local 3 // java.lang.Object[] parameters
        end local 2 // java.lang.String name
        end local 1 // java.lang.String namespace
        end local 0 // org.apache.tomcat.util.descriptor.web.CallMethodMultiRule this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   71     0         this  Lorg/apache/tomcat/util/descriptor/web/CallMethodMultiRule;
            0   71     1    namespace  Ljava/lang/String;
            0   71     2         name  Ljava/lang/String;
            1   71     3   parameters  [Ljava/lang/Object;
            7   71     4  multiParams  Ljava/util/ArrayList<*>;
            8   71     5  paramValues  [Ljava/lang/Object;
            9   20     6            i  I
           22   23     6       target  Ljava/lang/Object;
           24   71     6       target  Ljava/lang/Object;
           26   35     7           sb  Ljava/lang/StringBuilder;
           43   69     7        param  Ljava/lang/Object;
           54   69     9         code  Ljava/lang/StringBuilder;
           58   67    10            i  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      namespace  
      name       
}
SourceFile: "WebRuleSet.java"