/** * Compute a single related {@link MetaBean}. * * @param prop meta property * @param beanRef bean reference */ protected void computeRelatedMetaBean(MetaProperty prop, String beanRef) { Class<?> beanType = prop.getFeature(REF_BEAN_TYPE); if (beanType == null) { if (prop.getFeature(REF_CASCADE) != null) { // dynamic type resolution: prop.setMetaBean(new DynamicMetaBean(this)); } } else { prop.setMetaBean(findForClass(beanType)); } }
/** * Validates a single object. * * @param <VL> * @param context * The validation context, its current bean must be a single * object. * @param s */ protected static <VL extends ValidationListener> void validateBeanInContext(ValidationContext<VL> context, ValidateCallback s) { if (getDynamicMetaBean(context) != null) { context.setMetaBean(getDynamicMetaBean(context).resolveMetaBean(context.getBean())); } s.validate(); }
final MetaBean initialMetaBean = new DynamicMetaBean(getMetaBeanFinder()); initialMetaBean.setBeanClass(beanType); GroupValidationContext<T> context = createContext(initialMetaBean, object, beanType, groups);
context.setBean(value); } else { context.setBean(value, dyn.resolveMetaBean(value));
context.setBean(each); } else { context.setBean(each, dyn.resolveMetaBean(each));
context.setBean(each); } else { context.setBean(each, dyn.resolveMetaBean(each));