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

import com.l7tech.gateway.common.cluster.ClusterProperty;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.util.Eithers;
import com.l7tech.util.Option;
import com.l7tech.util.Pair;
import com.l7tech.util.Eithers.E2;
import java.util.Collection;
import java.util.Map;

class q
   implements ResourceFactorySupport.TransactionalCallback<E2<ResourceFactory.InvalidResourceException, ResourceFactory.ResourceNotFoundException, Option<Void>>> {
   final Object val$resource;
   final Map val$selectorMap;
   final ClusterPropertyBackedResourceFactory this$0;

   q(ClusterPropertyBackedResourceFactory var1, Object var2, Map var3) {
      this.this$0 = var1;
      this.val$resource = var2;
      this.val$selectorMap = var3;
   }

   public E2<ResourceFactory.InvalidResourceException, ResourceFactory.ResourceNotFoundException, Option<Void>> execute() throws ObjectModelException {
      try {
         Pair var1 = this.this$0.internalFromResource(this.val$resource);
         ClusterProperty var2 = this.this$0.c();
         this.this$0.verifyVersion(var2.getVersion(), (Integer)Option.optional((Integer)var1.right).orSome(Integer.MIN_VALUE));
         Collection var3 = this.this$0.a(var2);
         Collection var4 = this.this$0.a(this.val$selectorMap, var1.left, var3);
         this.this$0.a(var2, this.this$0.a(var4));
         return Eithers.right2(Option.none());
      } catch (ResourceFactory.InvalidResourceException var5) {
         return Eithers.left2_1(var5);
      } catch (ResourceFactory.ResourceNotFoundException var6) {
         return Eithers.left2_2(var6);
      }
   }
}
