use of javax.validation.metadata.BeanDescriptor in project hibernate-orm by hibernate.
the class TypeSafeActivator method applyDDL.
private static void applyDDL(String prefix, PersistentClass persistentClass, Class<?> clazz, ValidatorFactory factory, Set<Class<?>> groups, boolean activateNotNull, Dialect dialect) {
final BeanDescriptor descriptor = factory.getValidator().getConstraintsForClass(clazz);
for (PropertyDescriptor propertyDesc : descriptor.getConstrainedProperties()) {
Property property = findPropertyByName(persistentClass, prefix + propertyDesc.getPropertyName());
boolean hasNotNull;
if (property != null) {
hasNotNull = applyConstraints(propertyDesc.getConstraintDescriptors(), property, propertyDesc, groups, activateNotNull, dialect);
if (property.isComposite() && propertyDesc.isCascaded()) {
Class<?> componentClass = ((Component) property.getValue()).getComponentClass();
/*
* we can apply not null if the upper component let's us activate not null
* and if the property is not null.
* Otherwise, all sub columns should be left nullable
*/
final boolean canSetNotNullOnColumns = activateNotNull && hasNotNull;
applyDDL(prefix + propertyDesc.getPropertyName() + ".", persistentClass, componentClass, factory, groups, canSetNotNullOnColumns, dialect);
}
// FIXME add collection of components
}
}
}
Aggregations