All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.grails.web.plugins.support.DefaultConstrainedDiscovery.groovy Maven / Gradle / Ivy

package org.grails.web.plugins.support

import grails.gorm.validation.ConstrainedEntity
import grails.gorm.validation.ConstrainedProperty
import grails.validation.Constrained
import grails.validation.ConstrainedDelegate
import groovy.transform.CompileStatic
import org.grails.datastore.mapping.model.PersistentEntity
import org.grails.validation.discovery.ConstrainedDiscovery
import org.springframework.validation.Validator

/**
 * Discovers the default constrained properties for a domain class
 *
 * @author Graeme Rocher
 * @since 3.3
 */
@CompileStatic
class DefaultConstrainedDiscovery implements ConstrainedDiscovery {
    @Override
    Map findConstrainedProperties(PersistentEntity entity) {
        Validator validator = entity.getMappingContext().getEntityValidator(entity)
        if(validator instanceof ConstrainedEntity) {
            ConstrainedEntity constrainedEntity = (ConstrainedEntity)validator
            Map constrainedProperties = constrainedEntity.getConstrainedProperties()
            return adaptConstraints(constrainedProperties)
        }
        return Collections.emptyMap()
    }

    private static Map adaptConstraints(Map evaluated) {
        Map finalConstraints = new LinkedHashMap<>(evaluated.size());
        for (Map.Entry entry : evaluated.entrySet()) {
            finalConstraints.put(entry.getKey(), new ConstrainedDelegate(entry.getValue()));
        }
        return finalConstraints;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy