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

import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.server.message.PolicyEnforcementContext;
import java.io.IOException;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;

class g implements TransactionCallback<AssertionStatus> {
   final PolicyEnforcementContext val$context;
   final ServerTransactionAssertion this$0;

   g(ServerTransactionAssertion var1, PolicyEnforcementContext var2) {
      this.this$0 = var1;
      this.val$context = var2;
   }

   public AssertionStatus doInTransaction(TransactionStatus var1) {
      try {
         AssertionStatus var2 = this.this$0.iterateChildren(this.val$context, this.this$0.j);

         try {
            if (var2 != AssertionStatus.NONE) {
               var1.setRollbackOnly();
            }
         } catch (PolicyAssertionException var3) {
            throw a(var3);
         }

         return var2;
      } catch (PolicyAssertionException | IOException var4) {
         var1.setRollbackOnly();
         return AssertionStatus.FAILED;
      }
   }

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