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

import com.l7tech.gateway.api.PolicyImportResult;
import com.l7tech.gateway.api.impl.PolicyImportContext;
import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.util.Eithers;
import com.l7tech.util.Eithers.E2;
import java.util.Map;

class c0
   implements ResourceFactorySupport.TransactionalCallback<E2<ResourceFactory.ResourceNotFoundException, ResourceFactory.InvalidResourceException, PolicyImportResult>> {
   final Map val$selectorMap;
   final PolicyImportContext val$resource;
   final ServiceResourceFactory this$0;

   c0(ServiceResourceFactory var1, Map var2, PolicyImportContext var3) {
      this.this$0 = var1;
      this.val$selectorMap = var2;
      this.val$resource = var3;
   }

   public E2<ResourceFactory.ResourceNotFoundException, ResourceFactory.InvalidResourceException, PolicyImportResult> execute() throws ObjectModelException {
      try {
         PublishedService var1 = this.this$0.selectEntity(this.val$selectorMap);
         this.this$0.checkPermitted(OperationType.UPDATE, null, var1);
         this.this$0.u.checkPolicyAssertionAccess(var1.getPolicy());
         PolicyImportResult var2 = this.this$0.u.importPolicy(var1.getPolicy(), this.val$resource);
         this.this$0.q.update(var1);
         return Eithers.right2(var2);
      } catch (ResourceFactory.ResourceNotFoundException var3) {
         return Eithers.left2_1(var3);
      } catch (ResourceFactory.InvalidResourceException var4) {
         return Eithers.left2_2(var4);
      }
   }
}
