package com.l7tech.server.policy;

import com.l7tech.policy.Policy;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.PolicyAssertionException;

class ad implements PolicyService.ServiceInfo {
   private Assertion a;
   final Assertion val$servicePolicy;
   final String val$servicePolicyVersion;
   final ac this$1;

   ad(ac var1, Assertion var2, String var3) {
      this.this$1 = var1;
      this.val$servicePolicy = var2;
      this.val$servicePolicyVersion = var3;
      this.a = this.this$1.val$inlineIncludes ? null : Policy.simplify(this.val$servicePolicy, this.this$1.val$includeComments);
   }

   @Override
   public synchronized Assertion getPolicy() throws PolicyAssertionException {
      InterruptedException var1;
      try {
         if (this.a != null) {
            return this.a;
         }

         try {
            this.a = Policy.simplify(this.this$1.this$0.policyPathBuilder.inlineIncludes(this.val$servicePolicy, null, false), this.this$1.val$includeComments);
            return this.a;
         } catch (InterruptedException var2) {
            var1 = var2;
         }
      } catch (PolicyAssertionException var3) {
         throw a(var3);
      }

      throw new RuntimeException(var1);
   }

   @Override
   public String getVersion() {
      return this.val$servicePolicyVersion;
   }

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