public abstract class org.springframework.util.MimeTypeUtils
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.springframework.util.MimeTypeUtils
super_class: java.lang.Object
{
private static final byte[] BOUNDARY_CHARS;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final java.util.Comparator<org.springframework.util.MimeType> SPECIFICITY_COMPARATOR;
descriptor: Ljava/util/Comparator;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Comparator<Lorg/springframework/util/MimeType;>;
public static final org.springframework.util.MimeType ALL;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String ALL_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "*/*"
public static final org.springframework.util.MimeType APPLICATION_JSON;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String APPLICATION_JSON_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "application/json"
public static final org.springframework.util.MimeType APPLICATION_OCTET_STREAM;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String APPLICATION_OCTET_STREAM_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "application/octet-stream"
public static final org.springframework.util.MimeType APPLICATION_XML;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String APPLICATION_XML_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "application/xml"
public static final org.springframework.util.MimeType IMAGE_GIF;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String IMAGE_GIF_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "image/gif"
public static final org.springframework.util.MimeType IMAGE_JPEG;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String IMAGE_JPEG_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "image/jpeg"
public static final org.springframework.util.MimeType IMAGE_PNG;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String IMAGE_PNG_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "image/png"
public static final org.springframework.util.MimeType TEXT_HTML;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String TEXT_HTML_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "text/html"
public static final org.springframework.util.MimeType TEXT_PLAIN;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String TEXT_PLAIN_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "text/plain"
public static final org.springframework.util.MimeType TEXT_XML;
descriptor: Lorg/springframework/util/MimeType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String TEXT_XML_VALUE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "text/xml"
private static volatile java.util.Random random;
descriptor: Ljava/util/Random;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 64
newarray 8
dup
iconst_0
bipush 45
bastore
dup
iconst_1
bipush 95
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 50
bastore
dup
iconst_4
bipush 51
bastore
dup
iconst_5
bipush 52
bastore
dup
bipush 6
bipush 53
bastore
dup
bipush 7
bipush 54
bastore
dup
bipush 8
bipush 55
bastore
dup
bipush 9
bipush 56
bastore
dup
bipush 10
bipush 57
bastore
dup
bipush 11
bipush 48
bastore
dup
bipush 12
bipush 97
bastore
dup
bipush 13
bipush 98
bastore
dup
bipush 14
bipush 99
bastore
dup
bipush 15
bipush 100
bastore
dup
bipush 16
bipush 101
bastore
dup
bipush 17
bipush 102
bastore
dup
bipush 18
bipush 103
bastore
dup
bipush 19
1: bipush 104
bastore
dup
bipush 20
bipush 105
bastore
dup
bipush 21
bipush 106
bastore
dup
bipush 22
bipush 107
bastore
dup
bipush 23
bipush 108
bastore
dup
bipush 24
bipush 109
bastore
dup
bipush 25
bipush 110
bastore
dup
bipush 26
bipush 111
bastore
dup
bipush 27
bipush 112
bastore
dup
bipush 28
bipush 113
bastore
dup
bipush 29
bipush 114
bastore
dup
bipush 30
bipush 115
bastore
dup
bipush 31
bipush 116
bastore
dup
bipush 32
bipush 117
bastore
dup
bipush 33
bipush 118
bastore
dup
bipush 34
bipush 119
bastore
dup
bipush 35
bipush 120
bastore
dup
bipush 36
bipush 121
bastore
dup
bipush 37
bipush 122
bastore
dup
bipush 38
bipush 65
bastore
dup
bipush 39
2: bipush 66
bastore
dup
bipush 40
bipush 67
bastore
dup
bipush 41
bipush 68
bastore
dup
bipush 42
bipush 69
bastore
dup
bipush 43
bipush 70
bastore
dup
bipush 44
bipush 71
bastore
dup
bipush 45
bipush 72
bastore
dup
bipush 46
bipush 73
bastore
dup
bipush 47
bipush 74
bastore
dup
bipush 48
bipush 75
bastore
dup
bipush 49
bipush 76
bastore
dup
bipush 50
bipush 77
bastore
dup
bipush 51
bipush 78
bastore
dup
bipush 52
bipush 79
bastore
dup
bipush 53
bipush 80
bastore
dup
bipush 54
bipush 81
bastore
dup
bipush 55
bipush 82
bastore
dup
bipush 56
bipush 83
bastore
dup
bipush 57
bipush 84
bastore
dup
bipush 58
bipush 85
bastore
dup
bipush 59
3: bipush 86
bastore
dup
bipush 60
bipush 87
bastore
dup
bipush 61
bipush 88
bastore
dup
bipush 62
bipush 89
bastore
dup
bipush 63
bipush 90
bastore
4: putstatic org.springframework.util.MimeTypeUtils.BOUNDARY_CHARS:[B
5: new org.springframework.util.MimeType$SpecificityComparator
dup
invokespecial org.springframework.util.MimeType$SpecificityComparator.<init>:()V
putstatic org.springframework.util.MimeTypeUtils.SPECIFICITY_COMPARATOR:Ljava/util/Comparator;
6: ldc "*/*"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.ALL:Lorg/springframework/util/MimeType;
7: ldc "application/json"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.APPLICATION_JSON:Lorg/springframework/util/MimeType;
8: ldc "application/octet-stream"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.APPLICATION_OCTET_STREAM:Lorg/springframework/util/MimeType;
9: ldc "application/xml"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.APPLICATION_XML:Lorg/springframework/util/MimeType;
10: ldc "image/gif"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.IMAGE_GIF:Lorg/springframework/util/MimeType;
11: ldc "image/jpeg"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.IMAGE_JPEG:Lorg/springframework/util/MimeType;
12: ldc "image/png"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.IMAGE_PNG:Lorg/springframework/util/MimeType;
13: ldc "text/html"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.TEXT_HTML:Lorg/springframework/util/MimeType;
14: ldc "text/plain"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.TEXT_PLAIN:Lorg/springframework/util/MimeType;
15: ldc "text/xml"
invokestatic org.springframework.util.MimeType.valueOf:(Ljava/lang/String;)Lorg/springframework/util/MimeType;
putstatic org.springframework.util.MimeTypeUtils.TEXT_XML:Lorg/springframework/util/MimeType;
16: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/util/MimeTypeUtils;
public static org.springframework.util.MimeType parseMimeType(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/springframework/util/MimeType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=13, args_size=1
start local 0 0: aload 0
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifne 2
1: new org.springframework.util.InvalidMimeTypeException
dup
aload 0
ldc "'mimeType' must not be empty"
invokespecial org.springframework.util.InvalidMimeTypeException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
bipush 59
invokevirtual java.lang.String.indexOf:(I)I
istore 1
start local 1 3: iload 1
iflt 4
aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 5
StackMap locals: int
StackMap stack:
4: aload 0
StackMap locals:
StackMap stack: java.lang.String
5: invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 2
start local 2 6: aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifeq 8
7: new org.springframework.util.InvalidMimeTypeException
dup
aload 0
ldc "'mimeType' must not be empty"
invokespecial org.springframework.util.InvalidMimeTypeException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
8: StackMap locals: java.lang.String
StackMap stack:
ldc "*"
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
9: ldc "*/*"
astore 2
10: StackMap locals:
StackMap stack:
aload 2
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
istore 3
start local 3 11: iload 3
iconst_m1
if_icmpne 13
12: new org.springframework.util.InvalidMimeTypeException
dup
aload 0
ldc "does not contain '/'"
invokespecial org.springframework.util.InvalidMimeTypeException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
13: StackMap locals: int
StackMap stack:
iload 3
aload 2
invokevirtual java.lang.String.length:()I
iconst_1
isub
if_icmpne 15
14: new org.springframework.util.InvalidMimeTypeException
dup
aload 0
ldc "does not contain subtype after '/'"
invokespecial org.springframework.util.InvalidMimeTypeException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 4
start local 4 16: aload 2
iload 3
iconst_1
iadd
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 5
start local 5 17: ldc "*"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
ldc "*"
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
18: new org.springframework.util.InvalidMimeTypeException
dup
aload 0
ldc "wildcard type is legal only in '*/*' (all mime types)"
invokespecial org.springframework.util.InvalidMimeTypeException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
19: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aconst_null
astore 6
start local 6 20: StackMap locals: java.util.Map
StackMap stack:
iload 1
iconst_1
iadd
istore 7
start local 7 21: iconst_0
istore 8
start local 8 22: goto 32
23: StackMap locals: int int
StackMap stack:
aload 0
iload 7
invokevirtual java.lang.String.charAt:(I)C
istore 9
start local 9 24: iload 9
bipush 59
if_icmpne 27
25: iload 8
ifne 31
26: goto 33
27: StackMap locals: int
StackMap stack:
iload 9
bipush 34
if_icmpne 31
28: iload 8
ifeq 29
iconst_0
goto 30
StackMap locals:
StackMap stack:
29: iconst_1
StackMap locals:
StackMap stack: int
30: istore 8
31: StackMap locals:
StackMap stack:
iinc 7 1
end local 9 32: StackMap locals:
StackMap stack:
iload 7
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 23
33: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_1
iadd
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 9
start local 9 34: aload 9
invokevirtual java.lang.String.length:()I
ifle 42
35: aload 6
ifnonnull 37
36: new java.util.LinkedHashMap
dup
iconst_4
invokespecial java.util.LinkedHashMap.<init>:(I)V
astore 6
37: StackMap locals: java.lang.String
StackMap stack:
aload 9
bipush 61
invokevirtual java.lang.String.indexOf:(I)I
istore 10
start local 10 38: iload 10
iflt 42
39: aload 9
iconst_0
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 11
start local 11 40: aload 9
iload 10
iconst_1
iadd
aload 9
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 12
start local 12 41: aload 6
aload 11
aload 12
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 12 end local 11 end local 10 42: StackMap locals:
StackMap stack:
iload 7
istore 1
end local 9 end local 8 end local 7 43: iload 1
aload 0
invokevirtual java.lang.String.length:()I
44: if_icmplt 20
45: new org.springframework.util.MimeType
dup
aload 4
aload 5
aload 6
invokespecial org.springframework.util.MimeType.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
46: areturn
47: StackMap locals: java.lang.String int java.lang.String int java.lang.String java.lang.String java.util.Map
StackMap stack: java.nio.charset.UnsupportedCharsetException
astore 7
start local 7 48: new org.springframework.util.InvalidMimeTypeException
dup
aload 0
new java.lang.StringBuilder
dup
ldc "unsupported charset '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.nio.charset.UnsupportedCharsetException.getCharsetName:()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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.springframework.util.InvalidMimeTypeException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
end local 7 49: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 7
start local 7 50: new org.springframework.util.InvalidMimeTypeException
dup
aload 0
aload 7
invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
invokespecial org.springframework.util.InvalidMimeTypeException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
end local 7 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 51 0 mimeType Ljava/lang/String;
3 51 1 index I
6 51 2 fullType Ljava/lang/String;
11 51 3 subIndex I
16 51 4 type Ljava/lang/String;
17 51 5 subtype Ljava/lang/String;
20 51 6 parameters Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
21 43 7 nextIndex I
22 43 8 quoted Z
24 32 9 ch C
34 43 9 parameter Ljava/lang/String;
38 42 10 eqIndex I
40 42 11 attribute Ljava/lang/String;
41 42 12 value Ljava/lang/String;
48 49 7 ex Ljava/nio/charset/UnsupportedCharsetException;
50 51 7 ex Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
45 46 47 Class java.nio.charset.UnsupportedCharsetException
45 46 49 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
mimeType
public static java.util.List<org.springframework.util.MimeType> parseMimeTypes(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifne 2
1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic org.springframework.util.MimeTypeUtils.tokenize:(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
3: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/springframework/util/MimeTypeUtils.parseMimeType(Ljava/lang/String;)Lorg/springframework/util/MimeType; (6)
(Ljava/lang/String;)Lorg/springframework/util/MimeType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
4: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 mimeTypes Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/springframework/util/MimeType;>;
MethodParameters:
Name Flags
mimeTypes
public static java.util.List<java.lang.String> tokenize(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifne 2
1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 3: iconst_0
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: iconst_0
istore 4
start local 4 6: goto 18
7: StackMap locals: java.lang.String java.util.List int int int
StackMap stack:
aload 0
iload 4
invokevirtual java.lang.String.charAt:(I)C
lookupswitch { // 3
34: 8
44: 12
92: 16
default: 17
}
8: StackMap locals:
StackMap stack:
iload 2
ifeq 9
iconst_0
goto 10
StackMap locals:
StackMap stack:
9: iconst_1
StackMap locals:
StackMap stack: int
10: istore 2
11: goto 17
12: StackMap locals:
StackMap stack:
iload 2
ifne 17
13: aload 1
aload 0
iload 3
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: iload 4
iconst_1
iadd
istore 3
15: goto 17
16: StackMap locals:
StackMap stack:
iinc 4 1
17: StackMap locals:
StackMap stack:
iinc 4 1
18: StackMap locals:
StackMap stack:
iload 4
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 7
19: aload 1
aload 0
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
20: aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 mimeTypes Ljava/lang/String;
3 21 1 tokens Ljava/util/List<Ljava/lang/String;>;
4 21 2 inQuotes Z
5 21 3 startIndex I
6 21 4 i I
Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
mimeTypes
public static java.lang.String toString(java.util.Collection<? extends org.springframework.util.MimeType>);
descriptor: (Ljava/util/Collection;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
start local 2 2: goto 7
3: StackMap locals: java.lang.StringBuilder java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.util.MimeType
astore 3
start local 3 4: aload 3
aload 1
invokevirtual org.springframework.util.MimeType.appendTo:(Ljava/lang/StringBuilder;)V
5: aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 7
6: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 7: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 8: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 mimeTypes Ljava/util/Collection<+Lorg/springframework/util/MimeType;>;
1 9 1 builder Ljava/lang/StringBuilder;
2 8 2 iterator Ljava/util/Iterator<+Lorg/springframework/util/MimeType;>;
4 7 3 mimeType Lorg/springframework/util/MimeType;
Signature: (Ljava/util/Collection<+Lorg/springframework/util/MimeType;>;)Ljava/lang/String;
MethodParameters:
Name Flags
mimeTypes
public static void sortBySpecificity(java.util.List<org.springframework.util.MimeType>);
descriptor: (Ljava/util/List;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "'mimeTypes' must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 3
2: aload 0
getstatic org.springframework.util.MimeTypeUtils.SPECIFICITY_COMPARATOR:Ljava/util/Comparator;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 mimeTypes Ljava/util/List<Lorg/springframework/util/MimeType;>;
Signature: (Ljava/util/List<Lorg/springframework/util/MimeType;>;)V
MethodParameters:
Name Flags
mimeTypes
private static java.util.Random initRandom();
descriptor: ()Ljava/util/Random;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: getstatic org.springframework.util.MimeTypeUtils.random:Ljava/util/Random;
astore 0
start local 0 1: aload 0
ifnonnull 11
2: ldc Lorg/springframework/util/MimeTypeUtils;
dup
astore 1
monitorenter
3: getstatic org.springframework.util.MimeTypeUtils.random:Ljava/util/Random;
astore 0
4: aload 0
ifnonnull 7
5: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
astore 0
6: aload 0
putstatic org.springframework.util.MimeTypeUtils.random:Ljava/util/Random;
7: StackMap locals: java.util.Random java.lang.Class
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 12 0 randomToUse Ljava/util/Random;
Exception table:
from to target type
3 8 9 any
9 10 9 any
public static byte[] generateMultipartBoundary();
descriptor: ()[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=0
0: invokestatic org.springframework.util.MimeTypeUtils.initRandom:()Ljava/util/Random;
astore 0
start local 0 1: aload 0
bipush 11
invokevirtual java.util.Random.nextInt:(I)I
bipush 30
iadd
newarray 8
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: goto 6
4: StackMap locals: java.util.Random byte[] int
StackMap stack:
aload 1
iload 2
getstatic org.springframework.util.MimeTypeUtils.BOUNDARY_CHARS:[B
aload 0
getstatic org.springframework.util.MimeTypeUtils.BOUNDARY_CHARS:[B
arraylength
invokevirtual java.util.Random.nextInt:(I)I
baload
bastore
5: iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 1
arraylength
if_icmplt 4
end local 2 7: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 randomToUse Ljava/util/Random;
2 8 1 boundary [B
3 7 2 i I
public static java.lang.String generateMultipartBoundaryString();
descriptor: ()Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new java.lang.String
dup
invokestatic org.springframework.util.MimeTypeUtils.generateMultipartBoundary:()[B
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "MimeTypeUtils.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public SpecificityComparator = org.springframework.util.MimeType$SpecificityComparator of org.springframework.util.MimeType