public class org.apache.commons.digester.substitution.MultiVariableExpander implements org.apache.commons.digester.substitution.VariableExpander
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.commons.digester.substitution.MultiVariableExpander
super_class: java.lang.Object
{
private int nEntries;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.ArrayList<java.lang.String> markers;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private java.util.ArrayList<java.util.Map<java.lang.String, java.lang.Object>> sources;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.commons.digester.substitution.MultiVariableExpander.nEntries:I
2: aload 0
new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.apache.commons.digester.substitution.MultiVariableExpander.markers:Ljava/util/ArrayList;
3: aload 0
new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.apache.commons.digester.substitution.MultiVariableExpander.sources:Ljava/util/ArrayList;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/commons/digester/substitution/MultiVariableExpander;
public void addSource(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/lang/String;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
getfield org.apache.commons.digester.substitution.MultiVariableExpander.nEntries:I
iconst_1
iadd
putfield org.apache.commons.digester.substitution.MultiVariableExpander.nEntries:I
1: aload 0
getfield org.apache.commons.digester.substitution.MultiVariableExpander.markers:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.apache.commons.digester.substitution.MultiVariableExpander.sources:Ljava/util/ArrayList;
aload 2
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/commons/digester/substitution/MultiVariableExpander;
0 4 1 marker Ljava/lang/String;
0 4 2 source Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
marker
source
public java.lang.String expand(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 8
2: StackMap locals: int
StackMap stack:
aload 0
3: aload 1
4: aload 0
getfield org.apache.commons.digester.substitution.MultiVariableExpander.markers:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
5: aload 0
getfield org.apache.commons.digester.substitution.MultiVariableExpander.sources:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.util.Map
6: invokevirtual org.apache.commons.digester.substitution.MultiVariableExpander.expand:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
astore 1
7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 0
getfield org.apache.commons.digester.substitution.MultiVariableExpander.nEntries:I
if_icmplt 2
end local 2 9: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/commons/digester/substitution/MultiVariableExpander;
0 10 1 param Ljava/lang/String;
1 9 2 i I
MethodParameters:
Name Flags
param
public java.lang.String expand(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "{"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 1: aload 4
invokevirtual java.lang.String.length:()I
istore 5
start local 5 2: iconst_0
istore 6
start local 6 3: StackMap locals: java.lang.String int int
StackMap stack:
aload 1
aload 4
iload 6
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
istore 6
4: iload 6
iconst_m1
if_icmpne 6
5: aload 1
areturn
6: StackMap locals:
StackMap stack:
iload 6
iload 5
iadd
istore 7
start local 7 7: iload 7
aload 1
invokevirtual java.lang.String.length:()I
if_icmple 11
8: new java.lang.IllegalArgumentException
dup
9: ldc "var expression starts at end of string"
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: int
StackMap stack:
aload 1
ldc "}"
iload 6
iload 5
iadd
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
istore 8
start local 8 12: iload 8
iconst_m1
if_icmpne 16
13: new java.lang.IllegalArgumentException
dup
14: ldc "var expression starts but does not end"
15: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: int
StackMap stack:
aload 1
iload 6
iload 5
iadd
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 9
start local 9 17: aload 3
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 10
start local 10 18: aload 10
ifnonnull 22
19: new java.lang.IllegalArgumentException
dup
20: new java.lang.StringBuilder
dup
ldc "parameter ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] is not defined."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: java.lang.String java.lang.Object
StackMap stack:
aload 10
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 11
start local 11 23: new java.lang.StringBuilder
dup
aload 1
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
iload 8
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
24: iload 6
aload 11
invokevirtual java.lang.String.length:()I
iadd
istore 6
end local 11 end local 10 end local 9 end local 8 end local 7 25: goto 3
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/apache/commons/digester/substitution/MultiVariableExpander;
0 26 1 str Ljava/lang/String;
0 26 2 marker Ljava/lang/String;
0 26 3 source Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
1 26 4 startMark Ljava/lang/String;
2 26 5 markLen I
3 26 6 index I
7 25 7 startIndex I
12 25 8 endIndex I
17 25 9 key Ljava/lang/String;
18 25 10 value Ljava/lang/Object;
23 25 11 varValue Ljava/lang/String;
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/lang/String;
MethodParameters:
Name Flags
str
marker
source
}
SourceFile: "MultiVariableExpander.java"