public class org.apache.dubbo.validation.support.jvalidation.JValidator extends java.lang.Object implements org.apache.dubbo.validation.Validator
{
private static final org.apache.dubbo.common.logger.Logger logger;
private final java.lang.Class clazz;
private final java.util.Map methodClassMap;
private final javax.validation.Validator validator;
public void <init>(org.apache.dubbo.common.URL)
{
org.apache.dubbo.validation.support.jvalidation.JValidator v;
java.util.concurrent.ConcurrentHashMap v;
javax.validation.Validator v;
javax.validation.ValidatorFactory v;
javax.validation.bootstrap.ProviderSpecificBootstrap v;
org.apache.dubbo.common.URL v;
javax.validation.Configuration v;
int v;
java.lang.Class v, v;
java.lang.String v, v;
v := @this: org.apache.dubbo.validation.support.jvalidation.JValidator;
v := @parameter: org.apache.dubbo.common.URL;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getServiceInterface()>();
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: java.lang.Class forName(java.lang.String)>(v);
v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz> = v;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String)>("jvalidation");
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: java.lang.Class forName(java.lang.String)>(v);
v = staticinvoke <javax.validation.Validation: javax.validation.bootstrap.ProviderSpecificBootstrap byProvider(java.lang.Class)>(v);
v = interfaceinvoke v.<javax.validation.bootstrap.ProviderSpecificBootstrap: javax.validation.Configuration configure()>();
v = interfaceinvoke v.<javax.validation.Configuration: javax.validation.ValidatorFactory buildValidatorFactory()>();
goto label;
label:
v = staticinvoke <javax.validation.Validation: javax.validation.ValidatorFactory buildDefaultValidatorFactory()>();
label:
v = interfaceinvoke v.<javax.validation.ValidatorFactory: javax.validation.Validator getValidator()>();
v.<org.apache.dubbo.validation.support.jvalidation.JValidator: javax.validation.Validator validator> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.util.Map methodClassMap> = v;
return;
}
private static java.lang.Object getMethodParameterBean(java.lang.Class, java.lang.reflect.Method, java.lang.Object[])
{
java.lang.Throwable v;
java.lang.Object[] v;
int v, v;
java.lang.String v, v, v, v;
java.lang.reflect.Method v;
boolean v;
org.apache.dubbo.common.logger.Logger v;
java.lang.reflect.Field v;
java.lang.Class v, v;
java.lang.ClassNotFoundException v;
java.lang.Object v, v;
java.lang.ClassLoader v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Object[];
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: boolean hasConstraintParameter(java.lang.reflect.Method)>(v);
if v != 0 goto label;
return null;
label:
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.String generateMethodParameterClassName(java.lang.Class,java.lang.reflect.Method)>(v, v);
label:
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>(v, 1, v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class generateMethodParameterClass(java.lang.Class,java.lang.reflect.Method,java.lang.String)>(v, v, v);
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u0001Argument\u0001");
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getField(java.lang.String)>(v);
v = v[v];
virtualinvoke v.<java.lang.reflect.Field: void set(java.lang.Object,java.lang.Object)>(v, v);
v = v + 1;
goto label;
label:
return v;
label:
v := @caughtexception;
v = <org.apache.dubbo.validation.support.jvalidation.JValidator: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
return null;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static java.lang.Class generateMethodParameterClass(java.lang.Class, java.lang.reflect.Method, java.lang.String) throws java.lang.Exception
{
javassist.bytecode.ConstPool v, v, v;
javassist.CtClass v, v, v, v, v, v;
java.lang.reflect.Method[] v;
javassist.bytecode.FieldInfo v;
javassist.bytecode.'annotation'.Annotation v;
javassist.CtConstructor v;
java.lang.reflect.Method v, v;
boolean v, v;
javassist.CtField v;
java.lang.'annotation'.Annotation v;
java.lang.ClassLoader v, v, v;
javassist.ClassPool v;
java.lang.Throwable v, v;
java.lang.Object[] v;
javassist.bytecode.'annotation'.MemberValue v;
java.lang.'annotation'.Annotation[] v;
int v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.lang.'annotation'.Annotation[][] v;
javassist.bytecode.ClassFile v;
java.lang.Class[] v, v;
javassist.bytecode.AnnotationsAttribute v;
java.lang.Class v, v, v, v, v, v, v, v, v, v;
java.lang.Object v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <org.apache.dubbo.common.bytecode.ClassGenerator: javassist.ClassPool getClassPool(java.lang.ClassLoader)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String intern()>();
entermonitor v;
label:
v = null;
label:
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass getCtClass(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
if null != v goto label;
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass makeClass(java.lang.String)>(v);
v = virtualinvoke v.<javassist.CtClass: javassist.bytecode.ClassFile getClassFile()>();
virtualinvoke v.<javassist.bytecode.ClassFile: void setVersionToJava5()>();
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass getCtClass(java.lang.String)>(v);
v = staticinvoke <javassist.CtNewConstructor: javassist.CtConstructor defaultConstructor(javassist.CtClass)>(v);
virtualinvoke v.<javassist.CtClass: void addConstructor(javassist.CtConstructor)>(v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation[][] getParameterAnnotations()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v[v];
v = new javassist.bytecode.AnnotationsAttribute;
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool getConstPool()>();
specialinvoke v.<javassist.bytecode.AnnotationsAttribute: void <init>(javassist.bytecode.ConstPool,java.lang.String)>(v, "RuntimeVisibleAnnotations");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.lang.Class: boolean isAnnotationPresent(java.lang.Class)>(class "Ljavax/validation/Constraint;");
if v == 0 goto label;
v = new javassist.bytecode.'annotation'.Annotation;
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool getConstPool()>();
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass getCtClass(java.lang.String)>(v);
specialinvoke v.<javassist.bytecode.'annotation'.Annotation: void <init>(javassist.bytecode.ConstPool,javassist.CtClass)>(v, v);
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.reflect.Method: int getModifiers()>();
v = staticinvoke <javassist.Modifier: boolean isPublic(int)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getDeclaringClass()>();
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
if v != v goto label;
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
if null == v goto label;
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool getConstPool()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass get(java.lang.String)>(v);
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: javassist.bytecode.'annotation'.MemberValue createMemberValue(javassist.bytecode.ConstPool,javassist.CtClass,java.lang.Object)>(v, v, v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
virtualinvoke v.<javassist.bytecode.'annotation'.Annotation: void addMemberValue(java.lang.String,javassist.bytecode.'annotation'.MemberValue)>(v, v);
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<javassist.bytecode.AnnotationsAttribute: void addAnnotation(javassist.bytecode.'annotation'.Annotation)>(v);
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u0001Argument\u0001");
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("public \u \u;");
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass getCtClass(java.lang.String)>(v);
v = staticinvoke <javassist.CtField: javassist.CtField make(java.lang.String,javassist.CtClass)>(v, v);
v = virtualinvoke v.<javassist.CtField: javassist.bytecode.FieldInfo getFieldInfo()>();
virtualinvoke v.<javassist.bytecode.FieldInfo: void addAttribute(javassist.bytecode.AttributeInfo)>(v);
virtualinvoke v.<javassist.CtClass: void addField(javassist.CtField)>(v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = virtualinvoke v.<javassist.CtClass: java.lang.Class toClass(java.lang.ClassLoader,java.security.ProtectionDomain)>(v, null);
exitmonitor v;
label:
return v;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>(v, 1, v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch javassist.NotFoundException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static java.lang.String generateMethodParameterClassName(java.lang.Class, java.lang.reflect.Method)
{
java.lang.Class[] v;
int v, v;
java.lang.Class v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v, v;
java.lang.reflect.Method v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.reflect.Method;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.String toUpperMethodName(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001_\u0001Parameter_");
return v;
}
private static boolean hasConstraintParameter(java.lang.reflect.Method)
{
java.lang.'annotation'.Annotation[][] v;
java.lang.'annotation'.Annotation[] v;
int v, v, v, v, v;
java.lang.'annotation'.Annotation v;
java.lang.Class v;
java.lang.reflect.Method v;
boolean v;
v := @parameter: java.lang.reflect.Method;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation[][] getParameterAnnotations()>();
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.lang.Class: boolean isAnnotationPresent(java.lang.Class)>(class "Ljavax/validation/Constraint;");
if v == 0 goto label;
return 1;
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return 0;
}
private static java.lang.String toUpperMethodName(java.lang.String)
{
java.lang.String v, v, v, v, v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, 1);
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
return v;
}
private static javassist.bytecode.'annotation'.MemberValue createMemberValue(javassist.bytecode.ConstPool, javassist.CtClass, java.lang.Object) throws javassist.NotFoundException
{
javassist.bytecode.ConstPool v;
javassist.CtClass v, v;
byte v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
javassist.bytecode.'annotation'.MemberValue[] v;
float v;
javassist.bytecode.'annotation'.MemberValue v, v;
long v;
short v;
int v, v, v;
java.lang.String v, v;
double v;
char v;
java.lang.Object v, v;
v := @parameter: javassist.bytecode.ConstPool;
v := @parameter: javassist.CtClass;
v := @parameter: java.lang.Object;
v = staticinvoke <javassist.bytecode.'annotation'.Annotation: javassist.bytecode.'annotation'.MemberValue createMemberValue(javassist.bytecode.ConstPool,javassist.CtClass)>(v, v);
v = v instanceof javassist.bytecode.'annotation'.BooleanMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.BooleanMemberValue: void setValue(boolean)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.ByteMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Byte: byte byteValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.ByteMemberValue: void setValue(byte)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.CharMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Character: char charValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.CharMemberValue: void setValue(char)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.ShortMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Short: short shortValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.ShortMemberValue: void setValue(short)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.IntegerMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.IntegerMemberValue: void setValue(int)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.LongMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.LongMemberValue: void setValue(long)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.FloatMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Float: float floatValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.FloatMemberValue: void setValue(float)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.DoubleMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Double: double doubleValue()>();
virtualinvoke v.<javassist.bytecode.'annotation'.DoubleMemberValue: void setValue(double)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.ClassMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<javassist.bytecode.'annotation'.ClassMemberValue: void setValue(java.lang.String)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.StringMemberValue;
if v == 0 goto label;
virtualinvoke v.<javassist.bytecode.'annotation'.StringMemberValue: void setValue(java.lang.String)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.EnumMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Enum: java.lang.String name()>();
virtualinvoke v.<javassist.bytecode.'annotation'.EnumMemberValue: void setValue(java.lang.String)>(v);
goto label;
label:
v = v instanceof javassist.bytecode.'annotation'.ArrayMemberValue;
if v == 0 goto label;
v = virtualinvoke v.<javassist.CtClass: javassist.CtClass getComponentType()>();
v = staticinvoke <java.lang.reflect.Array: int getLength(java.lang.Object)>(v);
v = newarray (javassist.bytecode.'annotation'.MemberValue)[v];
v = 0;
label:
if v >= v goto label;
v = staticinvoke <java.lang.reflect.Array: java.lang.Object get(java.lang.Object,int)>(v, v);
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: javassist.bytecode.'annotation'.MemberValue createMemberValue(javassist.bytecode.ConstPool,javassist.CtClass,java.lang.Object)>(v, v, v);
v[v] = v;
v = v + 1;
goto label;
label:
virtualinvoke v.<javassist.bytecode.'annotation'.ArrayMemberValue: void setValue(javassist.bytecode.'annotation'.MemberValue[])>(v);
label:
return v;
}
public void validate(java.lang.String, java.lang.Class[], java.lang.Object[]) throws java.lang.Exception
{
java.lang.reflect.Method v;
boolean v, v;
java.util.Set v;
javax.validation.Validator v;
java.util.List v;
java.lang.'annotation'.Annotation v;
org.apache.dubbo.validation.support.jvalidation.JValidator v;
java.lang.Object[] v, v;
java.util.ArrayList v;
java.util.HashSet v;
int v, v, v;
java.lang.String v, v, v, v, v;
org.apache.dubbo.common.logger.Logger v;
java.lang.Class[] v, v, v;
javax.validation.ConstraintViolationException v;
java.lang.Class v, v, v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.dubbo.validation.support.jvalidation.JValidator;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class[];
v := @parameter: java.lang.Object[];
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = specialinvoke v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class methodClass(java.lang.String)>(v);
if v == null goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
v = virtualinvoke v.<java.lang.reflect.Method: boolean isAnnotationPresent(java.lang.Class)>(class "Lorg/apache/dubbo/validation/MethodValidated;");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/apache/dubbo/validation/MethodValidated;");
v = interfaceinvoke v.<org.apache.dubbo.validation.MethodValidated: java.lang.Class[] value()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
interfaceinvoke v.<java.util.List: void add(int,java.lang.Object)>(0, class "Ljavax/validation/groups/Default;");
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
interfaceinvoke v.<java.util.List: void add(int,java.lang.Object)>(1, v);
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (java.lang.Class)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Object getMethodParameterBean(java.lang.Class,java.lang.reflect.Method,java.lang.Object[])>(v, v, v);
if v == null goto label;
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: javax.validation.Validator validator>;
v = interfaceinvoke v.<javax.validation.Validator: java.util.Set validate(java.lang.Object,java.lang.Class[])>(v, v);
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
specialinvoke v.<org.apache.dubbo.validation.support.jvalidation.JValidator: void validate(java.util.Set,java.lang.Object,java.lang.Class[])>(v, v, v);
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = <org.apache.dubbo.validation.support.jvalidation.JValidator: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.util.HashSet)>(v, 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[])>("Failed to validate service: \u, method: \u, cause: \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String)>(v);
v = new javax.validation.ConstraintViolationException;
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.util.HashSet)>(v, 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[])>("Failed to validate service: \u, method: \u, cause: \u0001");
specialinvoke v.<javax.validation.ConstraintViolationException: void <init>(java.lang.String,java.util.Set)>(v, v);
throw v;
label:
return;
}
private java.lang.Class methodClass(java.lang.String)
{
org.apache.dubbo.validation.support.jvalidation.JValidator v;
java.lang.Thread v;
java.util.Map v, v, v;
java.lang.String v, v, v, v;
java.lang.Class v, v, v, v, v;
java.lang.ClassNotFoundException v;
java.lang.Object v;
java.lang.ClassLoader v;
v := @this: org.apache.dubbo.validation.support.jvalidation.JValidator;
v := @parameter: java.lang.String;
v = null;
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.String toUpperMethodName(java.lang.String)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001$\u0001");
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.util.Map methodClassMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
if v != v goto label;
v = null;
goto label;
label:
v = v;
label:
return v;
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>(v, 0, v);
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.util.Map methodClassMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.util.Map methodClassMap>;
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: java.lang.Class clazz>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
catch java.lang.ClassNotFoundException from label to label with label;
}
private transient void validate(java.util.Set, java.lang.Object, java.lang.Class[])
{
org.apache.dubbo.validation.support.jvalidation.JValidator v;
int v, v;
boolean v, v, v, v, v, v;
java.util.Iterator v, v;
java.lang.Class[] v;
java.util.Set v, v, v;
javax.validation.Validator v;
java.lang.Class v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.apache.dubbo.validation.support.jvalidation.JValidator;
v := @parameter: java.util.Set;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class[];
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPrimitives(java.lang.Class)>(v);
if v != 0 goto label;
v = v instanceof java.lang.Object[];
if v == 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
specialinvoke v.<org.apache.dubbo.validation.support.jvalidation.JValidator: void validate(java.util.Set,java.lang.Object,java.lang.Class[])>(v, v, v);
v = v + 1;
goto label;
label:
v = v instanceof java.util.Collection;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
specialinvoke v.<org.apache.dubbo.validation.support.jvalidation.JValidator: void validate(java.util.Set,java.lang.Object,java.lang.Class[])>(v, v, v);
goto label;
label:
v = v instanceof java.util.Map;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
specialinvoke v.<org.apache.dubbo.validation.support.jvalidation.JValidator: void validate(java.util.Set,java.lang.Object,java.lang.Class[])>(v, v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
specialinvoke v.<org.apache.dubbo.validation.support.jvalidation.JValidator: void validate(java.util.Set,java.lang.Object,java.lang.Class[])>(v, v, v);
goto label;
label:
v = v.<org.apache.dubbo.validation.support.jvalidation.JValidator: javax.validation.Validator validator>;
v = interfaceinvoke v.<javax.validation.Validator: java.util.Set validate(java.lang.Object,java.lang.Class[])>(v, v);
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
label:
return;
}
static void <clinit>()
{
org.apache.dubbo.common.logger.Logger v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/validation/support/jvalidation/JValidator;");
<org.apache.dubbo.validation.support.jvalidation.JValidator: org.apache.dubbo.common.logger.Logger logger> = v;
return;
}
}