package com.l7tech.external.assertions.gatewaymanagement.server;

import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.util.Eithers;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;

class cn implements TransactionCallback {
   final ResourceFactorySupport.TransactionalCallback val$callback;
   final ResourceFactorySupport this$0;

   cn(ResourceFactorySupport var1, ResourceFactorySupport.TransactionalCallback var2) {
      this.this$0 = var1;
      this.val$callback = var2;
   }

   public Object doInTransaction(TransactionStatus var1) {
      try {
         Object var2 = this.val$callback.execute();

         try {
            if (!Eithers.isSuccess(var2)) {
               var1.setRollbackOnly();
            }
         } catch (ObjectModelException var3) {
            throw a(var3);
         }

         return var2;
      } catch (ObjectModelException var4) {
         var1.setRollbackOnly();
         this.this$0.handleObjectModelException(var4);
         return null;
      }
   }

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