public class org.springframework.web.accept.ContentNegotiationManager implements org.springframework.web.accept.ContentNegotiationStrategy, org.springframework.web.accept.MediaTypeFileExtensionResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.accept.ContentNegotiationManager
super_class: java.lang.Object
{
private final java.util.List<org.springframework.web.accept.ContentNegotiationStrategy> strategies;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/web/accept/ContentNegotiationStrategy;>;
private final java.util.Set<org.springframework.web.accept.MediaTypeFileExtensionResolver> resolvers;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Lorg/springframework/web/accept/MediaTypeFileExtensionResolver;>;
public void <init>(org.springframework.web.accept.ContentNegotiationStrategy[]);
descriptor: ([Lorg/springframework/web/accept/ContentNegotiationStrategy;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial org.springframework.web.accept.ContentNegotiationManager.<init>:(Ljava/util/Collection;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
0 2 1 strategies [Lorg/springframework/web/accept/ContentNegotiationStrategy;
MethodParameters:
Name Flags
strategies
public void <init>(java.util.Collection<org.springframework.web.accept.ContentNegotiationStrategy>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.springframework.web.accept.ContentNegotiationManager.strategies:Ljava/util/List;
2: aload 0
new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
putfield org.springframework.web.accept.ContentNegotiationManager.resolvers:Ljava/util/Set;
3: aload 1
ldc "At least one ContentNegotiationStrategy is expected"
invokestatic org.springframework.util.Assert.notEmpty:(Ljava/util/Collection;Ljava/lang/String;)V
4: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.strategies:Ljava/util/List;
aload 1
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
5: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.strategies:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: org.springframework.web.accept.ContentNegotiationManager java.util.Collection top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.accept.ContentNegotiationStrategy
astore 2
start local 2 7: aload 2
instanceof org.springframework.web.accept.MediaTypeFileExtensionResolver
ifeq 9
8: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.resolvers:Ljava/util/Set;
aload 2
checkcast org.springframework.web.accept.MediaTypeFileExtensionResolver
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 2 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
0 11 1 strategies Ljava/util/Collection<Lorg/springframework/web/accept/ContentNegotiationStrategy;>;
7 9 2 strategy Lorg/springframework/web/accept/ContentNegotiationStrategy;
Signature: (Ljava/util/Collection<Lorg/springframework/web/accept/ContentNegotiationStrategy;>;)V
MethodParameters:
Name Flags
strategies
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
anewarray org.springframework.web.accept.ContentNegotiationStrategy
dup
iconst_0
new org.springframework.web.accept.HeaderContentNegotiationStrategy
dup
invokespecial org.springframework.web.accept.HeaderContentNegotiationStrategy.<init>:()V
aastore
invokespecial org.springframework.web.accept.ContentNegotiationManager.<init>:([Lorg/springframework/web/accept/ContentNegotiationStrategy;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
public java.util.List<org.springframework.web.accept.ContentNegotiationStrategy> getStrategies();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.strategies:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
Signature: ()Ljava/util/List<Lorg/springframework/web/accept/ContentNegotiationStrategy;>;
public <T extends org.springframework.web.accept.ContentNegotiationStrategy> T getStrategy(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Lorg/springframework/web/accept/ContentNegotiationStrategy;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.web.accept.ContentNegotiationManager.getStrategies:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.springframework.web.accept.ContentNegotiationManager java.lang.Class top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.accept.ContentNegotiationStrategy
astore 2
start local 2 2: aload 1
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 4
3: aload 2
areturn
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
0 6 1 strategyType Ljava/lang/Class<TT;>;
2 4 2 strategy Lorg/springframework/web/accept/ContentNegotiationStrategy;
Signature: <T::Lorg/springframework/web/accept/ContentNegotiationStrategy;>(Ljava/lang/Class<TT;>;)TT;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
strategyType
public void addFileExtensionResolvers(org.springframework.web.accept.MediaTypeFileExtensionResolver[]);
descriptor: ([Lorg/springframework/web/accept/MediaTypeFileExtensionResolver;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.resolvers:Ljava/util/Set;
aload 1
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
0 2 1 resolvers [Lorg/springframework/web/accept/MediaTypeFileExtensionResolver;
MethodParameters:
Name Flags
resolvers
public java.util.List<org.springframework.http.MediaType> resolveMediaTypes(org.springframework.web.context.request.NativeWebRequest);
descriptor: (Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.strategies:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: org.springframework.web.accept.ContentNegotiationManager org.springframework.web.context.request.NativeWebRequest top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.accept.ContentNegotiationStrategy
astore 2
start local 2 2: aload 2
aload 1
invokeinterface org.springframework.web.accept.ContentNegotiationStrategy.resolveMediaTypes:(Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/util/List;
astore 4
start local 4 3: aload 4
getstatic org.springframework.web.accept.ContentNegotiationManager.MEDIA_TYPE_ALL_LIST:Ljava/util/List;
invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
ifeq 5
4: goto 6
5: StackMap locals: org.springframework.web.accept.ContentNegotiationManager org.springframework.web.context.request.NativeWebRequest org.springframework.web.accept.ContentNegotiationStrategy java.util.Iterator java.util.List
StackMap stack:
aload 4
areturn
end local 4 end local 2 6: StackMap locals: org.springframework.web.accept.ContentNegotiationManager org.springframework.web.context.request.NativeWebRequest top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
7: getstatic org.springframework.web.accept.ContentNegotiationManager.MEDIA_TYPE_ALL_LIST:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
0 8 1 request Lorg/springframework/web/context/request/NativeWebRequest;
2 6 2 strategy Lorg/springframework/web/accept/ContentNegotiationStrategy;
3 6 4 mediaTypes Ljava/util/List<Lorg/springframework/http/MediaType;>;
Exceptions:
throws org.springframework.web.HttpMediaTypeNotAcceptableException
Signature: (Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/util/List<Lorg/springframework/http/MediaType;>;
MethodParameters:
Name Flags
request
public java.util.List<java.lang.String> resolveFileExtensions(org.springframework.http.MediaType);
descriptor: (Lorg/springframework/http/MediaType;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 2
start local 2 1: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.resolvers:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.springframework.web.accept.ContentNegotiationManager org.springframework.http.MediaType java.util.Set top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.accept.MediaTypeFileExtensionResolver
astore 3
start local 3 3: aload 2
aload 3
aload 1
invokeinterface org.springframework.web.accept.MediaTypeFileExtensionResolver.resolveFileExtensions:(Lorg/springframework/http/MediaType;)Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: new java.util.ArrayList
dup
aload 2
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
0 6 1 mediaType Lorg/springframework/http/MediaType;
1 6 2 result Ljava/util/Set<Ljava/lang/String;>;
3 4 3 resolver Lorg/springframework/web/accept/MediaTypeFileExtensionResolver;
Signature: (Lorg/springframework/http/MediaType;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
mediaType
public java.util.List<java.lang.String> getAllFileExtensions();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.springframework.web.accept.ContentNegotiationManager.resolvers:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.springframework.web.accept.ContentNegotiationManager java.util.Set top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.accept.MediaTypeFileExtensionResolver
astore 2
start local 2 3: aload 1
aload 2
invokeinterface org.springframework.web.accept.MediaTypeFileExtensionResolver.getAllFileExtensions:()Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: new java.util.ArrayList
dup
aload 1
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/accept/ContentNegotiationManager;
1 6 1 result Ljava/util/Set<Ljava/lang/String;>;
3 4 2 resolver Lorg/springframework/web/accept/MediaTypeFileExtensionResolver;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
}
SourceFile: "ContentNegotiationManager.java"