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

import com.l7tech.gateway.api.PolicyValidationResult;
import com.l7tech.gateway.api.impl.PolicyValidationContext;
import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.util.Eithers;
import com.l7tech.util.Eithers.E2;
import java.util.Map;

class c2
   implements ResourceFactorySupport.TransactionalCallback<E2<ResourceFactory.ResourceNotFoundException, ResourceFactory.InvalidResourceException, PolicyValidationResult>> {
   final PolicyValidationContext val$resource;
   final Map val$selectorMap;
   final ServiceResourceFactory this$0;

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

   public E2<ResourceFactory.ResourceNotFoundException, ResourceFactory.InvalidResourceException, PolicyValidationResult> execute() throws ObjectModelException {
      this.this$0.checkPermittedForSomeEntity(OperationType.READ, EntityType.SERVICE);

      try {
         return Eithers.right2(this.this$0.u.validatePolicy(this.val$resource, new c3(this)));
      } catch (ResourceFactory.ResourceNotFoundException var2) {
         return Eithers.left2_1(var2);
      } catch (ResourceFactory.InvalidResourceException var3) {
         return Eithers.left2_2(var3);
      }
   }
}
