package com.l7tech.server.policy.assertion.composite;

import com.l7tech.gateway.common.LicenseException;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.composite.OneOrMoreAssertion;
import com.l7tech.server.message.PolicyEnforcementContext;
import java.io.IOException;
import java.util.List;
import org.springframework.context.ApplicationContext;

public final class ServerOneOrMoreAssertion extends ServerCompositeAssertion<OneOrMoreAssertion> {
   private final ServerCompositeAssertion.AssertionResultListener h = new e(this);

   public ServerOneOrMoreAssertion(OneOrMoreAssertion var1, ApplicationContext var2) throws PolicyAssertionException, LicenseException {
      super(var1, var2);
   }

   @Override
   public AssertionStatus checkRequest(PolicyEnforcementContext var1) throws IOException, PolicyAssertionException {
      List var2 = this.getChildren();
      AssertionStatus var3 = AssertionStatus.FALSIFIED;
      if (var2.size() > 0) {
         var3 = this.iterateChildren(var1, this.h);
      }

      try {
         if (var3 != AssertionStatus.NONE) {
            this.rollbackDeferredAssertions(var1);
         }

         return var3;
      } catch (IOException var4) {
         throw a(var4);
      }
   }

   private static IOException a(IOException var0) {
      return var0;
   }
}
