@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void validate(Collection<Bean> beans) throws AbortRuntimeException { if (validator == null) { validator = Validation.buildDefaultValidatorFactory().getValidator(); } ClassRepository repos = new ClassRepository(); ClassLoader cl = repos.getClassLoader(); ClassLoader org = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(cl); for (Bean bean : beans) { Class genclazz = forName(bean.getSchema().getType()); Object beanToValidate = conversion.convert(bean, genclazz); logger.debug("Validating {}", beanToValidate); Set<ConstraintViolation<Object>> violations = validator.validate(beanToValidate); String msg = ""; for (ConstraintViolation<Object> v : violations) { msg = msg + v.getPropertyPath() + " " + v.getMessage(); } if (msg != null && !"".equals(msg.trim())) { throw CFG309_VALIDATION_ERROR(msg); } } } finally { Thread.currentThread().setContextClassLoader(org); } }
@Override public void register(String schemaName, Class<?> clazz) throws AbortRuntimeException { ClassRepository repos = new ClassRepository(); repos.add(clazz); repos.add(getTransitiveDependencies(clazz)); repos.write(); }
private static void validateProperties(Bean bean) { Schema schema = bean.getSchema(); ClassRepository repos = new ClassRepository(); for (SchemaProperty prop : schema.get(SchemaProperty.class)) { String value = validateSingle(bean, prop); if (value == null) { continue; } try { conversion.convert(value, repos.loadClass(prop.getType())); } catch (Exception e) { throw Events.CFG105_WRONG_PROPERTY_TYPE(bean.getId(), prop.getName(), prop.getType(), value); } } }
private static void validatePropertyList(Bean bean) { Schema schema = bean.getSchema(); ClassRepository repos = new ClassRepository(); for (SchemaPropertyList prop : schema.get(SchemaPropertyList.class)) { List<String> values = bean.getValues(prop.getName()); if (values == null) { continue; } for (String value : values) { try { conversion.convert(value, repos.loadClass(prop.getType())); } catch (Exception e) { throw Events.CFG105_WRONG_PROPERTY_TYPE(bean.getId(), prop.getName(), prop.getType(), value); } } } }