Search in sources :

Example 16 with IssueDetails

use of gov.ca.cwds.rest.exception.IssueDetails in project api-core by ca-cwds.

the class ValidationExceptionMapperImpl method toResponse.

@Override
public Response toResponse(ConstraintViolationException exception) {
    Set<IssueDetails> validationDetailsList = IssueDetailsCreator.create(exception, loggingContext.getUniqueId());
    BaseExceptionResponse constraintViolationsResponse = new BaseExceptionResponse();
    constraintViolationsResponse.setIssueDetails(validationDetailsList);
    return Response.status(422).type(MediaType.APPLICATION_JSON_TYPE).entity(constraintViolationsResponse).build();
}
Also used : BaseExceptionResponse(gov.ca.cwds.rest.exception.BaseExceptionResponse) IssueDetails(gov.ca.cwds.rest.exception.IssueDetails)

Example 17 with IssueDetails

use of gov.ca.cwds.rest.exception.IssueDetails in project api-core by ca-cwds.

the class DroolsService method performBusinessRules.

public Set<IssueDetails> performBusinessRules(DroolsConfiguration droolsConfiguration, Object... facts) throws DroolsException {
    KieSession kSession = null;
    try {
        kSession = initSession(droolsConfiguration);
        final Set<IssueDetails> validationDetailsList = new HashSet<>();
        kSession.setGlobal(VAR_VALIDATION_DETAILS_LIST, validationDetailsList);
        for (Object fact : facts) {
            kSession.insert(fact);
        }
        final int rulesFired = kSession.fireAllRules();
        log(droolsConfiguration, facts, rulesFired, validationDetailsList);
        return validationDetailsList;
    } finally {
        disposeSessionSafely(kSession);
    }
}
Also used : IssueDetails(gov.ca.cwds.rest.exception.IssueDetails) KieSession(org.kie.api.runtime.KieSession) HashSet(java.util.HashSet)

Example 18 with IssueDetails

use of gov.ca.cwds.rest.exception.IssueDetails 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)

Example 19 with IssueDetails

use of gov.ca.cwds.rest.exception.IssueDetails in project cals-api by ca-cwds.

the class RFA1aRequiredFieldsValidationTest method requiredFieldsValidationOnSubmitTest.

@Test
public void requiredFieldsValidationOnSubmitTest() throws Exception {
    RFA1aFormDTO form = prepareEmptyForm();
    List<IssueDetails> cvIssues = getIssueDetails(form);
    // First and Last Names are validated on save progress stage
    // Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_FIRST_NAME)));// "CV000002";
    // Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_LAST_NAME )));// "CV000003";
    // "CV000004
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_OTHER_NAMES_FIRST_NAME)));
    // "CV000005"
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_OTHER_NAMES_LAST_NAME)));
    // "CV000006";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_DATE_OF_BIRTH)));
    // "CV000007";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_DRIVER_LICENSE_STATE)));
    // Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_DRIVER_LICENSE_NUMBER)));// "CV000008"); //see checkDriverLicenseNumberFormTest()
    // "CV000009";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_APPLICANT_PHONE_NUMBER)));
    // Residence Card
    // "CV000010";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_RESIDENCE_STREET_ADDRESS)));
    // "CV000011";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_RESIDENCE_ADDRESS_CITY)));
    // "CV000012";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_RESIDENCE_ADDRESS_STATE)));
    // "CV000013";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_RESIDENCE_ADDRESS_ZIP)));
    List<IssueDetails> streetIssues = cvIssues.stream().filter(issueDetails -> issueDetails.getCode().equals(REQUIRED_RESIDENCE_STREET_ADDRESS)).collect(Collectors.toList());
    Assert.assertEquals(1, streetIssues.size());
    List<IssueDetails> cityIssues = cvIssues.stream().filter(issueDetails -> issueDetails.getCode().equals(REQUIRED_RESIDENCE_ADDRESS_CITY)).collect(Collectors.toList());
    Assert.assertEquals(1, cityIssues.size());
    List<IssueDetails> stateIssues = cvIssues.stream().filter(issueDetails -> issueDetails.getCode().equals(REQUIRED_RESIDENCE_ADDRESS_STATE)).collect(Collectors.toList());
    Assert.assertEquals(1, stateIssues.size());
    List<IssueDetails> zipIssues = cvIssues.stream().filter(issueDetails -> issueDetails.getCode().equals(REQUIRED_RESIDENCE_ADDRESS_ZIP)).collect(Collectors.toList());
    Assert.assertEquals(1, zipIssues.size());
    // "CV000014";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_PHYSICAL_MAILING_THE_SAME)));
    // "CV000015";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_RESIDENCE_OWNERSHIP)));
    // "CV000016";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_WEAPON_IN_HOME_FIELD)));
    // "CV000017";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_BODY_OF_WATER_EXIST_FIELD)));
    // "CV000018";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_OTHER_PEOPLE_IN_RESIDENCE)));
    // "CV000019";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_HOME_LANGUAGES)));
}
Also used : JsonProperty(com.fasterxml.jackson.annotation.JsonProperty) Arrays(java.util.Arrays) REQUIRED_OTHER_PEOPLE_IN_RESIDENCE(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_OTHER_PEOPLE_IN_RESIDENCE) BeforeClass(org.junit.BeforeClass) REQUIRED_APPLICANT_DRIVER_LICENSE_STATE(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DRIVER_LICENSE_STATE) PhoneNumberType(gov.ca.cwds.cals.persistence.model.calsns.dictionaries.PhoneNumberType) REQUIRED_APPLICANT_OTHER_NAMES_FIRST_NAME(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_OTHER_NAMES_FIRST_NAME) StateType(gov.ca.cwds.cals.persistence.model.calsns.dictionaries.StateType) IssueDetails(gov.ca.cwds.rest.exception.IssueDetails) REQUIRED_APPLICANT_PHONE_NUMBER(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_PHONE_NUMBER) REQUIRED_PHYSICAL_MAILING_THE_SAME(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_PHYSICAL_MAILING_THE_SAME) RFAAddressDTO(gov.ca.cwds.cals.service.dto.rfa.RFAAddressDTO) REQUIRED_MINOR_CHILD_DATE_OF_BIRTH(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_DATE_OF_BIRTH) REQUIRED_MINOR_CHILD_GENDER(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_GENDER) PhoneDTO(gov.ca.cwds.cals.service.dto.rfa.PhoneDTO) REQUIRED_HOME_LANGUAGES(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_HOME_LANGUAGES) REQUIRED_WEAPON_IN_HOME_FIELD(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_WEAPON_IN_HOME_FIELD) REQUIRED_RESIDENCE_ADDRESS_CITY(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_ADDRESS_CITY) REQUIRED_RESIDENCE_STREET_ADDRESS(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_STREET_ADDRESS) REQUIRED_APPLICANT_DRIVER_LICENSE_NUMBER(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DRIVER_LICENSE_NUMBER) REQUIRED_APPLICANT_DATE_OF_BIRTH(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DATE_OF_BIRTH) REQUIRED_BODY_OF_WATER_EXIST_FIELD(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_BODY_OF_WATER_EXIST_FIELD) REQUIRED_MINOR_CHILD_ADOPTED(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_ADOPTED) IOException(java.io.IOException) Test(org.junit.Test) REQUIRED_MINOR_CHILD_FINANCIALLY_SUPPORTED(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_FINANCIALLY_SUPPORTED) Collectors(java.util.stream.Collectors) Assert.assertNotEquals(org.junit.Assert.assertNotEquals) REQUIRED_RESIDENCE_ADDRESS_ZIP(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_ADDRESS_ZIP) TypedPersonNameDTO(gov.ca.cwds.cals.service.dto.rfa.TypedPersonNameDTO) List(java.util.List) REQUIRED_MINOR_CHILD_RELATIONSHIP_APPLICANT_ID(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_RELATIONSHIP_APPLICANT_ID) Response(javax.ws.rs.core.Response) MinorChildDTO(gov.ca.cwds.cals.service.dto.rfa.MinorChildDTO) REQUIRED_RESIDENCE_OWNERSHIP(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_OWNERSHIP) RFA1aFormDTO(gov.ca.cwds.cals.service.dto.rfa.RFA1aFormDTO) ResidenceDTO(gov.ca.cwds.cals.service.dto.rfa.ResidenceDTO) ApplicantDTO(gov.ca.cwds.cals.service.dto.rfa.ApplicantDTO) REQUIRED_APPLICANT_OTHER_NAMES_LAST_NAME(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_OTHER_NAMES_LAST_NAME) Assert(org.junit.Assert) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) REQUIRED_RESIDENCE_ADDRESS_STATE(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_ADDRESS_STATE) AddressType(gov.ca.cwds.cals.persistence.model.calsns.dictionaries.AddressType) RFA1aFormDTO(gov.ca.cwds.cals.service.dto.rfa.RFA1aFormDTO) IssueDetails(gov.ca.cwds.rest.exception.IssueDetails) Test(org.junit.Test)

Example 20 with IssueDetails

use of gov.ca.cwds.rest.exception.IssueDetails in project cals-api by ca-cwds.

the class RFA1aRequiredFieldsValidationTest method validateRequiredFieldsForMinorChild.

@Test
public void validateRequiredFieldsForMinorChild() throws Exception {
    RFA1aFormDTO rfa1aForm = prepareValidForm();
    ApplicantDTO firstApplicant = rfa1aForm.getFirstApplicant();
    MinorChildDTO minorChild = buildEmptyMinorChild(firstApplicant);
    minorChild.getRelationshipToApplicants().get(0).setApplicantId(null);
    minorChild = minorChildHelper.postMinorChild(rfa1aForm.getId(), minorChild);
    List<IssueDetails> cvIssues = getIssueDetails(rfa1aForm);
    // "CV000020";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_MINOR_CHILD_DATE_OF_BIRTH)));
    // "CV000021";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_MINOR_CHILD_GENDER)));
    // "CV000022";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_MINOR_CHILD_FINANCIALLY_SUPPORTED)));
    // "CV000023";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_MINOR_CHILD_ADOPTED)));
    // "CV000024";
    Assert.assertTrue(cvIssues.stream().anyMatch(id -> id.getCode().equals(REQUIRED_MINOR_CHILD_RELATIONSHIP_APPLICANT_ID)));
}
Also used : JsonProperty(com.fasterxml.jackson.annotation.JsonProperty) Arrays(java.util.Arrays) REQUIRED_OTHER_PEOPLE_IN_RESIDENCE(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_OTHER_PEOPLE_IN_RESIDENCE) BeforeClass(org.junit.BeforeClass) REQUIRED_APPLICANT_DRIVER_LICENSE_STATE(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DRIVER_LICENSE_STATE) PhoneNumberType(gov.ca.cwds.cals.persistence.model.calsns.dictionaries.PhoneNumberType) REQUIRED_APPLICANT_OTHER_NAMES_FIRST_NAME(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_OTHER_NAMES_FIRST_NAME) StateType(gov.ca.cwds.cals.persistence.model.calsns.dictionaries.StateType) IssueDetails(gov.ca.cwds.rest.exception.IssueDetails) REQUIRED_APPLICANT_PHONE_NUMBER(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_PHONE_NUMBER) REQUIRED_PHYSICAL_MAILING_THE_SAME(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_PHYSICAL_MAILING_THE_SAME) RFAAddressDTO(gov.ca.cwds.cals.service.dto.rfa.RFAAddressDTO) REQUIRED_MINOR_CHILD_DATE_OF_BIRTH(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_DATE_OF_BIRTH) REQUIRED_MINOR_CHILD_GENDER(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_GENDER) PhoneDTO(gov.ca.cwds.cals.service.dto.rfa.PhoneDTO) REQUIRED_HOME_LANGUAGES(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_HOME_LANGUAGES) REQUIRED_WEAPON_IN_HOME_FIELD(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_WEAPON_IN_HOME_FIELD) REQUIRED_RESIDENCE_ADDRESS_CITY(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_ADDRESS_CITY) REQUIRED_RESIDENCE_STREET_ADDRESS(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_STREET_ADDRESS) REQUIRED_APPLICANT_DRIVER_LICENSE_NUMBER(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DRIVER_LICENSE_NUMBER) REQUIRED_APPLICANT_DATE_OF_BIRTH(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DATE_OF_BIRTH) REQUIRED_BODY_OF_WATER_EXIST_FIELD(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_BODY_OF_WATER_EXIST_FIELD) REQUIRED_MINOR_CHILD_ADOPTED(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_ADOPTED) IOException(java.io.IOException) Test(org.junit.Test) REQUIRED_MINOR_CHILD_FINANCIALLY_SUPPORTED(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_FINANCIALLY_SUPPORTED) Collectors(java.util.stream.Collectors) Assert.assertNotEquals(org.junit.Assert.assertNotEquals) REQUIRED_RESIDENCE_ADDRESS_ZIP(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_ADDRESS_ZIP) TypedPersonNameDTO(gov.ca.cwds.cals.service.dto.rfa.TypedPersonNameDTO) List(java.util.List) REQUIRED_MINOR_CHILD_RELATIONSHIP_APPLICANT_ID(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_RELATIONSHIP_APPLICANT_ID) Response(javax.ws.rs.core.Response) MinorChildDTO(gov.ca.cwds.cals.service.dto.rfa.MinorChildDTO) REQUIRED_RESIDENCE_OWNERSHIP(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_OWNERSHIP) RFA1aFormDTO(gov.ca.cwds.cals.service.dto.rfa.RFA1aFormDTO) ResidenceDTO(gov.ca.cwds.cals.service.dto.rfa.ResidenceDTO) ApplicantDTO(gov.ca.cwds.cals.service.dto.rfa.ApplicantDTO) REQUIRED_APPLICANT_OTHER_NAMES_LAST_NAME(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_OTHER_NAMES_LAST_NAME) Assert(org.junit.Assert) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) REQUIRED_RESIDENCE_ADDRESS_STATE(gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_RESIDENCE_ADDRESS_STATE) AddressType(gov.ca.cwds.cals.persistence.model.calsns.dictionaries.AddressType) RFA1aFormDTO(gov.ca.cwds.cals.service.dto.rfa.RFA1aFormDTO) MinorChildDTO(gov.ca.cwds.cals.service.dto.rfa.MinorChildDTO) IssueDetails(gov.ca.cwds.rest.exception.IssueDetails) ApplicantDTO(gov.ca.cwds.cals.service.dto.rfa.ApplicantDTO) Test(org.junit.Test)

Aggregations

IssueDetails (gov.ca.cwds.rest.exception.IssueDetails)30 BaseExceptionResponse (gov.ca.cwds.rest.exception.BaseExceptionResponse)22 Test (org.junit.Test)19 RFA1aFormDTO (gov.ca.cwds.cals.service.dto.rfa.RFA1aFormDTO)15 ApplicantDTO (gov.ca.cwds.cals.service.dto.rfa.ApplicantDTO)14 HashMap (java.util.HashMap)12 Set (java.util.Set)11 Map (java.util.Map)10 ClientErrorException (javax.ws.rs.ClientErrorException)10 Response (javax.ws.rs.core.Response)10 JsonProperty (com.fasterxml.jackson.annotation.JsonProperty)4 REQUIRED_APPLICANT_DATE_OF_BIRTH (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DATE_OF_BIRTH)4 REQUIRED_APPLICANT_DRIVER_LICENSE_NUMBER (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DRIVER_LICENSE_NUMBER)4 REQUIRED_APPLICANT_DRIVER_LICENSE_STATE (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_DRIVER_LICENSE_STATE)4 REQUIRED_APPLICANT_OTHER_NAMES_FIRST_NAME (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_OTHER_NAMES_FIRST_NAME)4 REQUIRED_APPLICANT_OTHER_NAMES_LAST_NAME (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_OTHER_NAMES_LAST_NAME)4 REQUIRED_APPLICANT_PHONE_NUMBER (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_APPLICANT_PHONE_NUMBER)4 REQUIRED_BODY_OF_WATER_EXIST_FIELD (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_BODY_OF_WATER_EXIST_FIELD)4 REQUIRED_HOME_LANGUAGES (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_HOME_LANGUAGES)4 REQUIRED_MINOR_CHILD_ADOPTED (gov.ca.cwds.cals.Constants.Validation.Business.Code.REQUIRED_MINOR_CHILD_ADOPTED)4