public class org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver extends org.springframework.messaging.handler.'annotation'.support.AbstractNamedValueMethodArgumentResolver
{
private static final org.apache.commons.logging.Log logger;
public void <init>(org.springframework.core.convert.ConversionService, org.springframework.beans.factory.config.ConfigurableBeanFactory)
{
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver v;
org.springframework.beans.factory.config.ConfigurableBeanFactory v;
org.springframework.core.convert.ConversionService v;
v := @this: org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver;
v := @parameter: org.springframework.core.convert.ConversionService;
v := @parameter: org.springframework.beans.factory.config.ConfigurableBeanFactory;
specialinvoke v.<org.springframework.messaging.handler.'annotation'.support.AbstractNamedValueMethodArgumentResolver: void <init>(org.springframework.core.convert.ConversionService,org.springframework.beans.factory.config.ConfigurableBeanFactory)>(v, v);
return;
}
public boolean supportsParameter(org.springframework.core.MethodParameter)
{
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver v;
boolean v;
org.springframework.core.MethodParameter v;
v := @this: org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver;
v := @parameter: org.springframework.core.MethodParameter;
v = virtualinvoke v.<org.springframework.core.MethodParameter: boolean hasParameterAnnotation(java.lang.Class)>(class "Lorg/springframework/messaging/handler/annotation/Header;");
return v;
}
protected org.springframework.messaging.handler.'annotation'.support.AbstractNamedValueMethodArgumentResolver$NamedValueInfo createNamedValueInfo(org.springframework.core.MethodParameter)
{
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver v;
org.springframework.core.MethodParameter v;
java.lang.'annotation'.Annotation v;
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver$HeaderNamedValueInfo v;
v := @this: org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver;
v := @parameter: org.springframework.core.MethodParameter;
v = virtualinvoke v.<org.springframework.core.MethodParameter: java.lang.'annotation'.Annotation getParameterAnnotation(java.lang.Class)>(class "Lorg/springframework/messaging/handler/annotation/Header;");
v = new org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver$HeaderNamedValueInfo;
specialinvoke v.<org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver$HeaderNamedValueInfo: void <init>(org.springframework.messaging.handler.'annotation'.Header)>(v);
return v;
}
protected java.lang.Object resolveArgumentInternal(org.springframework.core.MethodParameter, org.springframework.messaging.Message, java.lang.String) throws java.lang.Exception
{
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver v;
org.springframework.messaging.MessageHeaders v;
org.springframework.core.MethodParameter v;
java.lang.Object v, v, v;
org.apache.commons.logging.Log v, v;
org.springframework.messaging.Message v;
java.lang.String v, v;
boolean v;
v := @this: org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver;
v := @parameter: org.springframework.core.MethodParameter;
v := @parameter: org.springframework.messaging.Message;
v := @parameter: java.lang.String;
v = interfaceinvoke v.<org.springframework.messaging.Message: org.springframework.messaging.MessageHeaders getHeaders()>();
v = virtualinvoke v.<org.springframework.messaging.MessageHeaders: java.lang.Object get(java.lang.Object)>(v);
v = specialinvoke v.<org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver: java.lang.Object getNativeHeaderValue(org.springframework.messaging.Message,java.lang.String)>(v, v);
if v == null goto label;
if v == null goto label;
v = <org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isWarnEnabled()>();
if v == 0 goto label;
v = <org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Message headers contain two values for the same header \'\u0001\', one in the top level header map and a second in the nested map with native headers. Using the value from top level map. Use \'nativeHeader.myHeader\' to resolve to the value from the nested native header map.");
interfaceinvoke v.<org.apache.commons.logging.Log: void warn(java.lang.Object)>(v);
label:
if v == null goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
private java.lang.Object getNativeHeaderValue(org.springframework.messaging.Message, java.lang.String)
{
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver v;
java.util.Map v;
int v, v;
java.lang.Object v, v;
org.springframework.messaging.Message v;
java.lang.String v, v;
boolean v, v;
v := @this: org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver;
v := @parameter: org.springframework.messaging.Message;
v := @parameter: java.lang.String;
v = specialinvoke v.<org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver: java.util.Map getNativeHeaders(org.springframework.messaging.Message)>(v);
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("nativeHeaders.");
if v == 0 goto label;
v = "nativeHeaders.";
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
label:
return null;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: int size()>();
if v != 1 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
goto label;
label:
v = v;
label:
return v;
}
private java.util.Map getNativeHeaders(org.springframework.messaging.Message)
{
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver v;
java.lang.Object v;
org.springframework.messaging.Message v;
org.springframework.messaging.MessageHeaders v;
v := @this: org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver;
v := @parameter: org.springframework.messaging.Message;
v = interfaceinvoke v.<org.springframework.messaging.Message: org.springframework.messaging.MessageHeaders getHeaders()>();
v = virtualinvoke v.<org.springframework.messaging.MessageHeaders: java.lang.Object get(java.lang.Object)>("nativeHeaders");
return v;
}
protected void handleMissingValue(java.lang.String, org.springframework.core.MethodParameter, org.springframework.messaging.Message)
{
org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver v;
org.springframework.messaging.MessageHandlingException v;
org.springframework.core.MethodParameter v;
java.lang.Class v;
org.springframework.messaging.Message v;
java.lang.String v, v;
v := @this: org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.core.MethodParameter;
v := @parameter: org.springframework.messaging.Message;
v = new org.springframework.messaging.MessageHandlingException;
v = virtualinvoke v.<org.springframework.core.MethodParameter: java.lang.Class getParameterType()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.Class)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Missing header \'\u0001\' for method parameter type [\u]");
specialinvoke v.<org.springframework.messaging.MessageHandlingException: void <init>(org.springframework.messaging.Message,java.lang.String)>(v, v);
throw v;
}
static void <clinit>()
{
org.apache.commons.logging.Log v;
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(class "Lorg/springframework/messaging/handler/annotation/support/HeaderMethodArgumentResolver;");
<org.springframework.messaging.handler.'annotation'.support.HeaderMethodArgumentResolver: org.apache.commons.logging.Log logger> = v;
return;
}
}