/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.policy.AssertionLicense
 *  com.l7tech.policy.PolicyValidator
 *  com.l7tech.policy.PolicyValidatorResult
 *  com.l7tech.policy.PolicyValidatorResult$Error
 *  com.l7tech.policy.PolicyValidatorResult$Warning
 *  com.l7tech.policy.assertion.Assertion
 *  com.l7tech.policy.validator.PolicyValidationContext
 *  org.jetbrains.annotations.Nullable
 */
package com.l7tech.server.policy.validator;

import com.l7tech.policy.AssertionLicense;
import com.l7tech.policy.PolicyValidator;
import com.l7tech.policy.PolicyValidatorResult;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.validator.PolicyValidationContext;
import java.util.Collections;
import java.util.List;
import org.jetbrains.annotations.Nullable;

public class CompositePolicyValidator
implements PolicyValidator {
    private final List<PolicyValidator> a;

    public CompositePolicyValidator(List<PolicyValidator> list) {
        this.a = Collections.unmodifiableList(list);
    }

    public PolicyValidatorResult validate(@Nullable Assertion assertion, PolicyValidationContext policyValidationContext, AssertionLicense assertionLicense) throws InterruptedException {
        PolicyValidatorResult policyValidatorResult = new PolicyValidatorResult();
        for (PolicyValidator policyValidator : this.a) {
            PolicyValidatorResult policyValidatorResult2 = policyValidator.validate(assertion, policyValidationContext, assertionLicense);
            for (PolicyValidatorResult.Warning warning : policyValidatorResult2.getWarnings()) {
                policyValidatorResult.addWarning(warning);
            }
            for (PolicyValidatorResult.Warning warning : policyValidatorResult2.getErrors()) {
                policyValidatorResult.addError((PolicyValidatorResult.Error)warning);
            }
        }
        return policyValidatorResult;
    }

    public void checkForCircularIncludes(String string, String string2, @Nullable Assertion assertion, PolicyValidatorResult policyValidatorResult) {
        if (!this.a.isEmpty()) {
            this.a.get(0).checkForCircularIncludes(string, string2, assertion, policyValidatorResult);
        }
    }
}

