/** * return accessors * * @param mappedProperty * @return */ private PropertyAccessor buildPropertyAccessor(Property mappedProperty) { if (mappedProperty.isBackRef()) { PropertyAccessor ac = mappedProperty.getPropertyAccessor(null); if (ac != null) return ac; } return accessor; }
private PropertyAccessor buildPropertyAccessor(Property mappedProperty) { if (mappedProperty.isBackRef()) { return mappedProperty.getPropertyAccessor(null); } else { return PropertyAccessorFactory.getDynamicMapPropertyAccessor(); } }
@SuppressWarnings("unchecked") private void addSubElement(Property property, ValidatableElement element) { if (property != null && property.isComposite() && !property.isBackRef()) { Component component = (Component) property.getValue(); if (component.isEmbedded()) return; PropertyAccessor accessor = PropertyAccessorFactory.getPropertyAccessor(property, EntityMode.POJO); Getter getter = accessor.getGetter(element.clazz, property.getName()); ClassValidator validator = new ClassValidator(getter.getReturnType()); ValidatableElement subElement = new ValidatableElement(getter.getReturnType(), validator, getter); Iterator properties = component.getPropertyIterator(); while (properties.hasNext()) { addSubElement((Property) properties.next(), subElement); } if (subElement.getSubElements().size() != 0 || subElement.validator.hasValidationRules()) { element.addSubElement(subElement); } } }