public class ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator implements ch.qos.logback.classic.pattern.Abbreviator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator
super_class: java.lang.Object
{
final int targetLength;
descriptor: I
flags: (0x0010) ACC_FINAL
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator this
start local 1 // int targetLength
0: .line 23
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 24
aload 0 /* this */
iload 1 /* targetLength */
putfield ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator.targetLength:I
2: .line 25
return
end local 1 // int targetLength
end local 0 // ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lch/qos/logback/classic/pattern/TargetLengthBasedClassNameAbbreviator;
0 3 1 targetLength I
MethodParameters:
Name Flags
targetLength
public java.lang.String abbreviate(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 // ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator this
start local 1 // java.lang.String fqClassName
0: .line 28
new java.lang.StringBuilder
dup
aload 0 /* this */
getfield ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator.targetLength:I
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 2 /* buf */
start local 2 // java.lang.StringBuilder buf
1: .line 29
aload 1 /* fqClassName */
ifnonnull 3
2: .line 30
new java.lang.IllegalArgumentException
dup
ldc "Class name may not be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: .line 33
StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 1 /* fqClassName */
invokevirtual java.lang.String.length:()I
istore 3 /* inLen */
start local 3 // int inLen
4: .line 34
iload 3 /* inLen */
aload 0 /* this */
getfield ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator.targetLength:I
if_icmpge 6
5: .line 35
aload 1 /* fqClassName */
areturn
6: .line 38
StackMap locals: int
StackMap stack:
bipush 16
newarray 10
astore 4 /* dotIndexesArray */
start local 4 // int[] dotIndexesArray
7: .line 41
bipush 17
newarray 10
astore 5 /* lengthArray */
start local 5 // int[] lengthArray
8: .line 43
aload 1 /* fqClassName */
aload 4 /* dotIndexesArray */
invokestatic ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator.computeDotIndexes:(Ljava/lang/String;[I)I
istore 6 /* dotCount */
start local 6 // int dotCount
9: .line 48
iload 6 /* dotCount */
ifne 11
10: .line 49
aload 1 /* fqClassName */
areturn
11: .line 52
StackMap locals: int[] int[] int
StackMap stack:
aload 0 /* this */
aload 1 /* fqClassName */
aload 4 /* dotIndexesArray */
aload 5 /* lengthArray */
iload 6 /* dotCount */
invokevirtual ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator.computeLengthArray:(Ljava/lang/String;[I[II)V
12: .line 54
iconst_0
istore 7 /* i */
start local 7 // int i
13: goto 19
14: .line 55
StackMap locals: int
StackMap stack:
iload 7 /* i */
ifne 17
15: .line 56
aload 2 /* buf */
aload 1 /* fqClassName */
iconst_0
aload 5 /* lengthArray */
iload 7 /* i */
iaload
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: .line 57
goto 18
17: .line 58
StackMap locals:
StackMap stack:
aload 2 /* buf */
aload 1 /* fqClassName */
aload 4 /* dotIndexesArray */
iload 7 /* i */
iconst_1
isub
iaload
aload 4 /* dotIndexesArray */
iload 7 /* i */
iconst_1
isub
iaload
aload 5 /* lengthArray */
iload 7 /* i */
iaload
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: .line 54
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
19: iload 7 /* i */
iload 6 /* dotCount */
if_icmple 14
end local 7 // int i
20: .line 63
aload 2 /* buf */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 6 // int dotCount
end local 5 // int[] lengthArray
end local 4 // int[] dotIndexesArray
end local 3 // int inLen
end local 2 // java.lang.StringBuilder buf
end local 1 // java.lang.String fqClassName
end local 0 // ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lch/qos/logback/classic/pattern/TargetLengthBasedClassNameAbbreviator;
0 21 1 fqClassName Ljava/lang/String;
1 21 2 buf Ljava/lang/StringBuilder;
4 21 3 inLen I
7 21 4 dotIndexesArray [I
8 21 5 lengthArray [I
9 21 6 dotCount I
13 20 7 i I
MethodParameters:
Name Flags
fqClassName
static int computeDotIndexes(java.lang.String, int[]);
descriptor: (Ljava/lang/String;[I)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 // java.lang.String className
start local 1 // int[] dotArray
0: .line 67
iconst_0
istore 2 /* dotCount */
start local 2 // int dotCount
1: .line 68
iconst_0
istore 3 /* k */
start local 3 // int k
2: .line 72
StackMap locals: int int
StackMap stack:
aload 0 /* className */
bipush 46
iload 3 /* k */
invokevirtual java.lang.String.indexOf:(II)I
istore 3 /* k */
3: .line 73
iload 3 /* k */
iconst_m1
if_icmpeq 8
iload 2 /* dotCount */
bipush 16
if_icmpge 8
4: .line 74
aload 1 /* dotArray */
iload 2 /* dotCount */
iload 3 /* k */
iastore
5: .line 75
iinc 2 /* dotCount */ 1
6: .line 76
iinc 3 /* k */ 1
7: .line 69
goto 2
8: .line 81
StackMap locals:
StackMap stack:
iload 2 /* dotCount */
ireturn
end local 3 // int k
end local 2 // int dotCount
end local 1 // int[] dotArray
end local 0 // java.lang.String className
LocalVariableTable:
Start End Slot Name Signature
0 9 0 className Ljava/lang/String;
0 9 1 dotArray [I
1 9 2 dotCount I
2 9 3 k I
MethodParameters:
Name Flags
className final
dotArray
void computeLengthArray(java.lang.String, int[], int[], int);
descriptor: (Ljava/lang/String;[I[II)V
flags: (0x0000)
Code:
stack=5, locals=10, args_size=5
start local 0 // ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator this
start local 1 // java.lang.String className
start local 2 // int[] dotArray
start local 3 // int[] lengthArray
start local 4 // int dotCount
0: .line 85
aload 1 /* className */
invokevirtual java.lang.String.length:()I
aload 0 /* this */
getfield ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator.targetLength:I
isub
istore 5 /* toTrim */
start local 5 // int toTrim
1: .line 91
iconst_0
istore 7 /* i */
start local 7 // int i
2: goto 19
3: .line 92
StackMap locals: ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator java.lang.String int[] int[] int int top int
StackMap stack:
iconst_m1
istore 8 /* previousDotPosition */
start local 8 // int previousDotPosition
4: .line 93
iload 7 /* i */
ifle 6
5: .line 94
aload 2 /* dotArray */
iload 7 /* i */
iconst_1
isub
iaload
istore 8 /* previousDotPosition */
6: .line 96
StackMap locals: int
StackMap stack:
aload 2 /* dotArray */
iload 7 /* i */
iaload
iload 8 /* previousDotPosition */
isub
iconst_1
isub
istore 9 /* available */
start local 9 // int available
7: .line 99
iload 9 /* available */
iconst_1
if_icmpge 8
iload 9 /* available */
goto 9
StackMap locals: int
StackMap stack:
8: iconst_1
StackMap locals:
StackMap stack: int
9: istore 6 /* len */
start local 6 // int len
10: .line 102
iload 5 /* toTrim */
ifle 15
11: .line 103
iload 9 /* available */
iconst_1
if_icmpge 12
iload 9 /* available */
goto 13
StackMap locals: ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator java.lang.String int[] int[] int int int int int int
StackMap stack:
12: iconst_1
StackMap locals:
StackMap stack: int
13: istore 6 /* len */
14: .line 104
goto 16
15: .line 105
StackMap locals:
StackMap stack:
iload 9 /* available */
istore 6 /* len */
16: .line 107
StackMap locals:
StackMap stack:
iload 5 /* toTrim */
iload 9 /* available */
iload 6 /* len */
isub
isub
istore 5 /* toTrim */
17: .line 108
aload 3 /* lengthArray */
iload 7 /* i */
iload 6 /* len */
iconst_1
iadd
iastore
end local 9 // int available
end local 8 // int previousDotPosition
18: .line 91
iinc 7 /* i */ 1
end local 6 // int len
StackMap locals: ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator java.lang.String int[] int[] int int top int
StackMap stack:
19: iload 7 /* i */
iload 4 /* dotCount */
if_icmplt 3
end local 7 // int i
20: .line 111
iload 4 /* dotCount */
iconst_1
isub
istore 7 /* lastDotIndex */
start local 7 // int lastDotIndex
21: .line 112
aload 3 /* lengthArray */
iload 4 /* dotCount */
aload 1 /* className */
invokevirtual java.lang.String.length:()I
aload 2 /* dotArray */
iload 7 /* lastDotIndex */
iaload
isub
iastore
22: .line 113
return
end local 7 // int lastDotIndex
end local 5 // int toTrim
end local 4 // int dotCount
end local 3 // int[] lengthArray
end local 2 // int[] dotArray
end local 1 // java.lang.String className
end local 0 // ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator this
LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lch/qos/logback/classic/pattern/TargetLengthBasedClassNameAbbreviator;
0 23 1 className Ljava/lang/String;
0 23 2 dotArray [I
0 23 3 lengthArray [I
0 23 4 dotCount I
1 23 5 toTrim I
10 19 6 len I
2 20 7 i I
4 18 8 previousDotPosition I
7 18 9 available I
21 23 7 lastDotIndex I
MethodParameters:
Name Flags
className final
dotArray
lengthArray
dotCount
static void printArray(java.lang.String, int[]);
descriptor: (Ljava/lang/String;[I)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 // java.lang.String msg
start local 1 // int[] ia
0: .line 116
getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0 /* msg */
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
1: .line 117
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 8
3: .line 118
StackMap locals: int
StackMap stack:
iload 2 /* i */
ifne 6
4: .line 119
getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 1 /* ia */
iload 2 /* i */
iaload
invokevirtual java.io.PrintStream.print:(I)V
5: .line 120
goto 7
6: .line 121
StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ", "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1 /* ia */
iload 2 /* i */
iaload
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
7: .line 117
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 2 /* i */
aload 1 /* ia */
arraylength
if_icmplt 3
end local 2 // int i
9: .line 124
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
10: .line 125
return
end local 1 // int[] ia
end local 0 // java.lang.String msg
LocalVariableTable:
Start End Slot Name Signature
0 11 0 msg Ljava/lang/String;
0 11 1 ia [I
2 9 2 i I
MethodParameters:
Name Flags
msg
ia
}
SourceFile: "TargetLengthBasedClassNameAbbreviator.java"