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

com.kenshoo.pl.entity.spi.helpers.CompoundChangesValidatorFactory Maven / Gradle / Ivy

Go to download

A Java persistence layer based on JOOQ for high performance and business flow support.

There is a newer version: 0.1.121-jooq-3.16.3
Show newest version
package com.kenshoo.pl.entity.spi.helpers;

import com.kenshoo.pl.entity.EntityType;
import com.kenshoo.pl.entity.internal.validators.EntityChangeValidator;
import com.kenshoo.pl.entity.spi.ChangeValidator;
import com.kenshoo.pl.entity.spi.ChangesValidator;
import com.kenshoo.pl.entity.spi.ParentConditionValidator;

import java.util.Collection;

public class CompoundChangesValidatorFactory {

    public static > ChangesValidator buildChangesValidator(E entityType, Collection validators) {
        ParentConditionCompositeValidator parentConditionsValidator = new ParentConditionCompositeValidator<>();
        EntityChangeCompositeValidator entityChangeValidator = new EntityChangeCompositeValidator<>();
        CompoundChangesValidator compoundChangesValidator = new CompoundChangesValidator<>();
        compoundChangesValidator.register(parentConditionsValidator);
        compoundChangesValidator.register(entityChangeValidator);

        for (Object validator : validators) {
            if (validator instanceof ChangeValidator) {
                entityChangeValidator.register(entityType, (ChangeValidator) validator);
            } else if(validator instanceof EntityChangeValidator) {
                //noinspection unchecked
                entityChangeValidator.register((EntityChangeValidator)validator);
            } else if (validator instanceof ParentConditionValidator) {
                parentConditionsValidator.register((ParentConditionValidator) validator);
            } else if (validator instanceof ChangesValidator) {
                //noinspection unchecked
                compoundChangesValidator.register((ChangesValidator) validator);
            }
        }
        return compoundChangesValidator;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy