public class org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter extends org.springframework.http.codec.EncoderHttpMessageWriter<com.google.protobuf.Message>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter
super_class: org.springframework.http.codec.EncoderHttpMessageWriter
{
private static final java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "X-Protobuf-Schema"
private static final java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "X-Protobuf-Message"
private static final java.util.concurrent.ConcurrentMap<java.lang.Class<?>, java.lang.reflect.Method> methodCache;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/Class<*>;Ljava/lang/reflect/Method;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.springframework.util.ConcurrentReferenceHashMap
dup
invokespecial org.springframework.util.ConcurrentReferenceHashMap.<init>:()V
putstatic org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter.methodCache:Ljava/util/concurrent/ConcurrentMap;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
new org.springframework.http.codec.protobuf.ProtobufEncoder
dup
invokespecial org.springframework.http.codec.protobuf.ProtobufEncoder.<init>:()V
invokespecial org.springframework.http.codec.EncoderHttpMessageWriter.<init>:(Lorg/springframework/core/codec/Encoder;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/codec/protobuf/ProtobufHttpMessageWriter;
public void <init>(org.springframework.core.codec.Encoder<com.google.protobuf.Message>);
descriptor: (Lorg/springframework/core/codec/Encoder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.springframework.http.codec.EncoderHttpMessageWriter.<init>:(Lorg/springframework/core/codec/Encoder;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/codec/protobuf/ProtobufHttpMessageWriter;
0 2 1 encoder Lorg/springframework/core/codec/Encoder<Lcom/google/protobuf/Message;>;
Signature: (Lorg/springframework/core/codec/Encoder<Lcom/google/protobuf/Message;>;)V
MethodParameters:
Name Flags
encoder
public reactor.core.publisher.Mono<java.lang.Void> write(org.reactivestreams.Publisher<? extends com.google.protobuf.Message>, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/reactivestreams/Publisher;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokevirtual org.springframework.core.ResolvableType.toClass:()Ljava/lang/Class;
invokestatic org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter.getMessageBuilder:(Ljava/lang/Class;)Lcom/google/protobuf/Message$Builder;
astore 6
start local 6 1: aload 6
invokeinterface com.google.protobuf.Message$Builder.getDescriptorForType:()Lcom/google/protobuf/Descriptors$Descriptor;
astore 7
start local 7 2: aload 4
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
ldc "X-Protobuf-Schema"
aload 7
invokevirtual com.google.protobuf.Descriptors$Descriptor.getFile:()Lcom/google/protobuf/Descriptors$FileDescriptor;
invokevirtual com.google.protobuf.Descriptors$FileDescriptor.getName:()Ljava/lang/String;
invokevirtual org.springframework.http.HttpHeaders.add:(Ljava/lang/String;Ljava/lang/String;)V
3: aload 4
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
ldc "X-Protobuf-Message"
aload 7
invokevirtual com.google.protobuf.Descriptors$Descriptor.getFullName:()Ljava/lang/String;
invokevirtual org.springframework.http.HttpHeaders.add:(Ljava/lang/String;Ljava/lang/String;)V
4: aload 1
instanceof reactor.core.publisher.Flux
ifeq 12
5: aload 3
ifnonnull 8
6: aload 4
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
aload 0
invokevirtual org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter.getEncoder:()Lorg/springframework/core/codec/Encoder;
checkcast org.springframework.http.codec.HttpMessageEncoder
invokeinterface org.springframework.http.codec.HttpMessageEncoder.getStreamingMediaTypes:()Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.springframework.http.MediaType
invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
7: goto 12
8: StackMap locals: com.google.protobuf.Message$Builder com.google.protobuf.Descriptors$Descriptor
StackMap stack:
ldc "true"
aload 3
invokevirtual org.springframework.http.MediaType.getParameters:()Ljava/util/Map;
ldc "delimited"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
9: new java.util.HashMap
dup
aload 3
invokevirtual org.springframework.http.MediaType.getParameters:()Ljava/util/Map;
invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
astore 8
start local 8 10: aload 8
ldc "delimited"
ldc "true"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 4
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
new org.springframework.http.MediaType
dup
aload 3
invokevirtual org.springframework.http.MediaType.getType:()Ljava/lang/String;
aload 3
invokevirtual org.springframework.http.MediaType.getSubtype:()Ljava/lang/String;
aload 8
invokespecial org.springframework.http.MediaType.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
end local 8 12: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
invokespecial org.springframework.http.codec.EncoderHttpMessageWriter.write:(Lorg/reactivestreams/Publisher;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
13: areturn
end local 7 end local 6 14: StackMap locals: org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter org.reactivestreams.Publisher org.springframework.core.ResolvableType org.springframework.http.MediaType org.springframework.http.ReactiveHttpOutputMessage java.util.Map
StackMap stack: java.lang.Exception
astore 6
start local 6 15: new org.springframework.core.codec.DecodingException
dup
new java.lang.StringBuilder
dup
ldc "Could not read Protobuf message: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokespecial org.springframework.core.codec.DecodingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
invokestatic reactor.core.publisher.Mono.error:(Ljava/lang/Throwable;)Lreactor/core/publisher/Mono;
areturn
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 16 0 this Lorg/springframework/http/codec/protobuf/ProtobufHttpMessageWriter;
0 16 1 inputStream Lorg/reactivestreams/Publisher<+Lcom/google/protobuf/Message;>;
0 16 2 elementType Lorg/springframework/core/ResolvableType;
0 16 3 mediaType Lorg/springframework/http/MediaType;
0 16 4 message Lorg/springframework/http/ReactiveHttpOutputMessage;
0 16 5 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
1 14 6 builder Lcom/google/protobuf/Message$Builder;
2 14 7 descriptor Lcom/google/protobuf/Descriptors$Descriptor;
10 12 8 parameters Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
15 16 6 ex Ljava/lang/Exception;
Exception table:
from to target type
0 13 14 Class java.lang.Exception
Signature: (Lorg/reactivestreams/Publisher<+Lcom/google/protobuf/Message;>;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
4:
MethodParameters:
Name Flags
inputStream
elementType
mediaType
message
hints
private static com.google.protobuf.Message$Builder getMessageBuilder(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lcom/google/protobuf/Message$Builder;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter.methodCache:Ljava/util/concurrent/ConcurrentMap;
aload 0
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 1
start local 1 1: aload 1
ifnonnull 4
2: aload 0
ldc "newBuilder"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 1
3: getstatic org.springframework.http.codec.protobuf.ProtobufHttpMessageWriter.methodCache:Ljava/util/concurrent/ConcurrentMap;
aload 0
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 1
aload 0
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.protobuf.Message$Builder
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 clazz Ljava/lang/Class<*>;
1 5 1 method Ljava/lang/reflect/Method;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/Class<*>;)Lcom/google/protobuf/Message$Builder;
MethodParameters:
Name Flags
clazz
}
Signature: Lorg/springframework/http/codec/EncoderHttpMessageWriter<Lcom/google/protobuf/Message;>;
SourceFile: "ProtobufHttpMessageWriter.java"
InnerClasses:
public final Descriptor = com.google.protobuf.Descriptors$Descriptor of com.google.protobuf.Descriptors
public final FileDescriptor = com.google.protobuf.Descriptors$FileDescriptor of com.google.protobuf.Descriptors
public abstract Builder = com.google.protobuf.Message$Builder of com.google.protobuf.Message