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.ExactlyOneAssertion;
import com.l7tech.server.message.PolicyEnforcementContext;
import java.io.IOException;
import org.springframework.context.ApplicationContext;

public final class ServerExactlyOneAssertion extends ServerCompositeAssertion<ExactlyOneAssertion> {
   public ServerExactlyOneAssertion(ExactlyOneAssertion var1, ApplicationContext var2) throws PolicyAssertionException, LicenseException {
      super(var1, var2);
   }

   @Override
   public AssertionStatus checkRequest(PolicyEnforcementContext var1) throws IOException, PolicyAssertionException {
      int[] var3 = new int[]{0};
      AssertionStatus var2 = this.iterateChildren(var1, new b(this, var3));

      AssertionStatus var10000;
      label27: {
         try {
            if (var3[0] == 1) {
               var10000 = AssertionStatus.NONE;
               break label27;
            }
         } catch (IOException var5) {
            throw a(var5);
         }

         var10000 = AssertionStatus.FALSIFIED;
      }

      var2 = var10000;

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

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

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