Search in sources :

Example 1 with DroolsConfiguration

use of gov.ca.cwds.drools.DroolsConfiguration in project api-core by ca-cwds.

the class DroolsValidator method isValid.

@Override
public boolean isValid(T obj, ConstraintValidatorContext context) {
    if (obj == null) {
        return true;
    }
    DroolsConfiguration<T> configuration = getConfiguration();
    Object validatedFact = configuration.getValidatedFact(obj);
    DroolsService droolsService = InjectorHolder.INSTANCE.getInstance(DroolsService.class);
    Set<IssueDetails> detailsList = null;
    try {
        detailsList = droolsService.performBusinessRules(configuration, validatedFact);
    } catch (DroolsException e) {
        LOGGER.warn(e.getMessage(), e);
        throw new RuntimeException(String.format(DroolsErrorMessages.CANT_PERFORM_BUSINESS_VALIDATION, configuration.getAgendaGroup()));
    }
    if (detailsList.isEmpty()) {
        return true;
    } else {
        context.disableDefaultConstraintViolation();
        detailsList.forEach((details -> context.buildConstraintViolationWithTemplate(marshallData(details)).addPropertyNode("").addConstraintViolation()));
        return false;
    }
}
Also used : DroolsErrorMessages(gov.ca.cwds.drools.DroolsErrorMessages) Logger(org.slf4j.Logger) ConstraintValidator(javax.validation.ConstraintValidator) ConstraintValidatorContext(javax.validation.ConstraintValidatorContext) LoggerFactory(org.slf4j.LoggerFactory) Set(java.util.Set) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) InjectorHolder(gov.ca.cwds.inject.InjectorHolder) DroolsConfiguration(gov.ca.cwds.drools.DroolsConfiguration) IssueDetails(gov.ca.cwds.rest.exception.IssueDetails) DroolsException(gov.ca.cwds.drools.DroolsException) JsonUtils(gov.ca.cwds.utils.JsonUtils) Annotation(java.lang.annotation.Annotation) DroolsService(gov.ca.cwds.drools.DroolsService) DroolsException(gov.ca.cwds.drools.DroolsException) IssueDetails(gov.ca.cwds.rest.exception.IssueDetails) DroolsService(gov.ca.cwds.drools.DroolsService)

Aggregations

JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 DroolsConfiguration (gov.ca.cwds.drools.DroolsConfiguration)1 DroolsErrorMessages (gov.ca.cwds.drools.DroolsErrorMessages)1 DroolsException (gov.ca.cwds.drools.DroolsException)1 DroolsService (gov.ca.cwds.drools.DroolsService)1 InjectorHolder (gov.ca.cwds.inject.InjectorHolder)1 IssueDetails (gov.ca.cwds.rest.exception.IssueDetails)1 JsonUtils (gov.ca.cwds.utils.JsonUtils)1 Annotation (java.lang.annotation.Annotation)1 Set (java.util.Set)1 ConstraintValidator (javax.validation.ConstraintValidator)1 ConstraintValidatorContext (javax.validation.ConstraintValidatorContext)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1