/** * Return new instance of {@link JValidator} * @param url Valid URL instance * @return Instance of JValidator */ @Override protected Validator createValidator(URL url) { return new JValidator(url); }
private static boolean isPrimitives(Class<?> cls) { if (cls.isArray()) { return isPrimitive(cls.getComponentType()); } return isPrimitive(cls); }
private static String generateMethodParameterClassName(Class<?> clazz, Method method) { StringBuilder builder = new StringBuilder().append(clazz.getName()) .append("_") .append(toUpperMethoName(method.getName())) .append("Parameter"); Class<?>[] parameterTypes = method.getParameterTypes(); for (Class<?> parameterType : parameterTypes) { builder.append("_").append(parameterType.getName()); } return builder.toString(); }
@Override public void validate(String methodName, Class<?>[] parameterTypes, Object[] arguments) throws Exception { List<Class<?>> groups = new ArrayList<Class<?>>(); Class<?> methodClass = methodClass(methodName); if (methodClass != null) { groups.add(methodClass); Object parameterBean = getMethodParameterBean(clazz, method, arguments); if (parameterBean != null) { violations.addAll(validator.validate(parameterBean, classgroups )); validate(violations, arg, classgroups);
private static Object getMethodParameterBean(Class<?> clazz, Method method, Object[] args) { if (!hasConstraintParameter(method)) { return null; String parameterClassName = generateMethodParameterClassName(clazz, method); Class<?> parameterClass; try { Object value = member.invoke(annotation, new Object[0]); if (null != value) { MemberValue memberValue = createMemberValue( classFile.getConstPool(), pool.get(member.getReturnType().getName()), value); ja.addMemberValue(member.getName(), memberValue);
private void validate(Set<ConstraintViolation<?>> violations, Object arg, Class<?>... groups) { if (arg != null && !isPrimitives(arg.getClass())) { if (Object[].class.isInstance(arg)) { for (Object item : (Object[]) arg) { validate(violations, item, groups); } } else if (Collection.class.isInstance(arg)) { for (Object item : (Collection<?>) arg) { validate(violations, item, groups); } } else if (Map.class.isInstance(arg)) { for (Map.Entry<?, ?> entry : ((Map<?, ?>) arg).entrySet()) { validate(violations, entry.getKey(), groups); validate(violations, entry.getValue(), groups); } } else { violations.addAll(validator.validate(arg, groups)); } } }
MemberValue[] members = new MemberValue[len]; for (int i = 0; i < len; i++) { members[i] = createMemberValue(cp, arrayType, Array.get(value, i));
@Override public void validate(String methodName, Class<?>[] parameterTypes, Object[] arguments) throws Exception { List<Class<?>> groups = new ArrayList<Class<?>>(); Class<?> methodClass = methodClass(methodName); if (methodClass != null) { groups.add(methodClass); Object parameterBean = getMethodParameterBean(clazz, method, arguments); if (parameterBean != null) { violations.addAll(validator.validate(parameterBean, classgroups )); validate(violations, arg, classgroups);
private static Object getMethodParameterBean(Class<?> clazz, Method method, Object[] args) { if (!hasConstraintParameter(method)) { return null; String parameterClassName = generateMethodParameterClassName(clazz, method); Class<?> parameterClass; try { Object value = member.invoke(annotation, new Object[0]); if (null != value) { MemberValue memberValue = createMemberValue( classFile.getConstPool(), pool.get(member.getReturnType().getName()), value); ja.addMemberValue(member.getName(), memberValue);
private void validate(Set<ConstraintViolation<?>> violations, Object arg, Class<?>... groups) { if (arg != null && !isPrimitives(arg.getClass())) { if (Object[].class.isInstance(arg)) { for (Object item : (Object[]) arg) { validate(violations, item, groups); } } else if (Collection.class.isInstance(arg)) { for (Object item : (Collection<?>) arg) { validate(violations, item, groups); } } else if (Map.class.isInstance(arg)) { for (Map.Entry<?, ?> entry : ((Map<?, ?>) arg).entrySet()) { validate(violations, entry.getKey(), groups); validate(violations, entry.getValue(), groups); } } else { violations.addAll(validator.validate(arg, groups)); } } }
/** * Return new instance of {@link JValidator} * @param url Valid URL instance * @return Instance of JValidator */ @Override protected Validator createValidator(URL url) { return new JValidator(url); }
private static boolean isPrimitives(Class<?> cls) { if (cls.isArray()) { return isPrimitive(cls.getComponentType()); } return isPrimitive(cls); }
private static String generateMethodParameterClassName(Class<?> clazz, Method method) { StringBuilder builder = new StringBuilder().append(clazz.getName()) .append("_") .append(toUpperMethoName(method.getName())) .append("Parameter"); Class<?>[] parameterTypes = method.getParameterTypes(); for (Class<?> parameterType : parameterTypes) { builder.append("_").append(parameterType.getName()); } return builder.toString(); }
MemberValue[] members = new MemberValue[len]; for (int i = 0; i < len; i++) { members[i] = createMemberValue(cp, arrayType, Array.get(value, i));
/** * Return new instance of {@link JValidator} * @param url Valid URL instance * @return Instance of JValidator */ @Override protected Validator createValidator(URL url) { return new JValidator(url); }
private static boolean isPrimitives(Class<?> cls) { if (cls.isArray()) { return isPrimitive(cls.getComponentType()); } return isPrimitive(cls); }
private Class methodClass(String methodName) { Class<?> methodClass = null; String methodClassName = clazz.getName() + "$" + toUpperMethoName(methodName); Class cached = methodClassMap.get(methodClassName); if (cached != null) { return cached == clazz ? null : cached; } try { methodClass = Class.forName(methodClassName, false, Thread.currentThread().getContextClassLoader()); methodClassMap.put(methodClassName, methodClass); } catch (ClassNotFoundException e) { methodClassMap.put(methodClassName, clazz); } return methodClass; }
/** * Return new instance of {@link JValidator} * @param url Valid URL instance * @return Instance of JValidator */ @Override protected Validator createValidator(URL url) { return new JValidator(url); }
private static boolean isPrimitives(Class<?> cls) { if (cls.isArray()) { return isPrimitive(cls.getComponentType()); } return isPrimitive(cls); }
private Class methodClass(String methodName) { Class<?> methodClass = null; String methodClassName = clazz.getName() + "$" + toUpperMethoName(methodName); Class cached = methodClassMap.get(methodClassName); if (cached != null) { return cached == clazz ? null : cached; } try { methodClass = Class.forName(methodClassName, false, Thread.currentThread().getContextClassLoader()); methodClassMap.put(methodClassName, methodClass); } catch (ClassNotFoundException e) { methodClassMap.put(methodClassName, clazz); } return methodClass; }