package com.l7tech.external.assertions.gatewaymanagement.server.rest.resource.impl;

import com.l7tech.external.assertions.gatewaymanagement.server.ResourceFactory;
import com.l7tech.external.assertions.gatewaymanagement.server.rest.factories.impl.FirewallRuleAPIResourceFactory;
import com.l7tech.external.assertions.gatewaymanagement.server.rest.resource.ChoiceParam;
import com.l7tech.external.assertions.gatewaymanagement.server.rest.resource.RestEntityResource;
import com.l7tech.external.assertions.gatewaymanagement.server.rest.resource.RestManVersion;
import com.l7tech.external.assertions.gatewaymanagement.server.rest.resource.Since;
import com.l7tech.external.assertions.gatewaymanagement.server.rest.transformers.impl.FirewallRuleTransformer;
import com.l7tech.gateway.api.FirewallRuleMO;
import com.l7tech.gateway.api.Item;
import com.l7tech.gateway.api.ItemsList;
import com.l7tech.gateway.api.ManagedObjectFactory;
import com.l7tech.gateway.rest.SpringBean;
import com.l7tech.util.CollectionUtils.MapBuilder;
import jakarta.inject.Singleton;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.NotFoundException;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.ext.Provider;
import java.util.List;

@Since(RestManVersion.VERSION_1_0_1)
@Provider
@Path("1.0/firewallRules")
@Singleton
public class FirewallRuleResource extends RestEntityResource<FirewallRuleMO, FirewallRuleAPIResourceFactory, FirewallRuleTransformer> {
   protected static final String firewallRule_URI;
   private static final String[] a;

   @SpringBean
   public void setFactory(FirewallRuleAPIResourceFactory var1) {
      super.factory = (F)var1;
   }

   @SpringBean
   public void setTransformer(FirewallRuleTransformer var1) {
      super.transformer = (T)var1;
   }

   @POST
   public Response create(FirewallRuleMO var1) throws ResourceFactory.ResourceNotFoundException, ResourceFactory.InvalidResourceException {
      this.a();
      return super.create(var1);
   }

   @GET
   @Path("{id}")
   @Override
   public Item<FirewallRuleMO> get(@PathParam("id") String var1) throws ResourceFactory.ResourceNotFoundException {
      this.a();
      return super.get(var1);
   }

   @GET
   public ItemsList<FirewallRuleMO> list(
      @QueryParam("sort") @ChoiceParam({"id", "name", "enabled", "ordinal"}) String param1,
      @QueryParam("order") @ChoiceParam({"asc", "desc"}) String param2,
      @QueryParam("name") List<String> param3,
      @QueryParam("enabled") Boolean param4,
      @QueryParam("ordinal") List<Integer> param5
   ) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokevirtual com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a ()V
      // 04: aload 2
      // 05: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/ParameterValidationUtils.convertSortOrder (Ljava/lang/String;)Ljava/lang/Boolean;
      // 08: astore 6
      // 0a: aload 0
      // 0b: getfield com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.uriInfo Ljakarta/ws/rs/core/UriInfo;
      // 0e: invokeinterface jakarta/ws/rs/core/UriInfo.getQueryParameters ()Ljakarta/ws/rs/core/MultivaluedMap; 1
      // 13: bipush 3
      // 14: anewarray 77
      // 17: dup
      // 18: bipush 0
      // 19: getstatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a [Ljava/lang/String;
      // 1c: astore 8
      // 1e: aload 8
      // 20: bipush 1
      // 21: aaload
      // 22: aastore
      // 23: dup
      // 24: bipush 1
      // 25: aload 8
      // 27: bipush 5
      // 28: aaload
      // 29: aastore
      // 2a: dup
      // 2b: bipush 2
      // 2c: aload 8
      // 2e: bipush 7
      // 30: aaload
      // 31: aastore
      // 32: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 35: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/ParameterValidationUtils.validateNoOtherQueryParamsIncludeDefaults (Ljakarta/ws/rs/core/MultivaluedMap;Ljava/util/List;)V
      // 38: invokestatic com/l7tech/util/CollectionUtils$MapBuilder.builder ()Lcom/l7tech/util/CollectionUtils$MapBuilder;
      // 3b: astore 7
      // 3d: aload 3
      // 3e: ifnull 64
      // 41: aload 3
      // 42: invokeinterface java/util/List.isEmpty ()Z 1
      // 47: ifne 64
      // 4a: goto 51
      // 4d: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a (Ljakarta/ws/rs/NotFoundException;)Ljakarta/ws/rs/NotFoundException;
      // 50: athrow
      // 51: aload 7
      // 53: getstatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a [Ljava/lang/String;
      // 56: bipush 3
      // 57: aaload
      // 58: aload 3
      // 59: invokevirtual com/l7tech/util/CollectionUtils$MapBuilder.put (Ljava/lang/Object;Ljava/lang/Object;)Lcom/l7tech/util/CollectionUtils$MapBuilder;
      // 5c: pop
      // 5d: goto 64
      // 60: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a (Ljakarta/ws/rs/NotFoundException;)Ljakarta/ws/rs/NotFoundException;
      // 63: athrow
      // 64: aload 5
      // 66: ifnull 8e
      // 69: aload 5
      // 6b: invokeinterface java/util/List.isEmpty ()Z 1
      // 70: ifne 8e
      // 73: goto 7a
      // 76: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a (Ljakarta/ws/rs/NotFoundException;)Ljakarta/ws/rs/NotFoundException;
      // 79: athrow
      // 7a: aload 7
      // 7c: getstatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a [Ljava/lang/String;
      // 7f: bipush 0
      // 80: aaload
      // 81: aload 5
      // 83: invokevirtual com/l7tech/util/CollectionUtils$MapBuilder.put (Ljava/lang/Object;Ljava/lang/Object;)Lcom/l7tech/util/CollectionUtils$MapBuilder;
      // 86: pop
      // 87: goto 8e
      // 8a: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a (Ljakarta/ws/rs/NotFoundException;)Ljakarta/ws/rs/NotFoundException;
      // 8d: athrow
      // 8e: aload 4
      // 90: ifnull b1
      // 93: aload 7
      // 95: getstatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a [Ljava/lang/String;
      // 98: bipush 4
      // 99: aaload
      // 9a: bipush 1
      // 9b: anewarray 76
      // 9e: dup
      // 9f: bipush 0
      // a0: aload 4
      // a2: aastore
      // a3: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // a6: invokevirtual com/l7tech/util/CollectionUtils$MapBuilder.put (Ljava/lang/Object;Ljava/lang/Object;)Lcom/l7tech/util/CollectionUtils$MapBuilder;
      // a9: pop
      // aa: goto b1
      // ad: invokestatic com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/impl/FirewallRuleResource.a (Ljakarta/ws/rs/NotFoundException;)Ljakarta/ws/rs/NotFoundException;
      // b0: athrow
      // b1: aload 0
      // b2: aload 1
      // b3: aload 6
      // b5: aload 7
      // b7: invokevirtual com/l7tech/util/CollectionUtils$MapBuilder.map ()Ljava/util/Map;
      // ba: invokespecial com/l7tech/external/assertions/gatewaymanagement/server/rest/resource/RestEntityResource.list (Ljava/lang/String;Ljava/lang/Boolean;Ljava/util/Map;)Lcom/l7tech/gateway/api/ItemsList;
      // bd: areturn
      // try (34 -> 39): 40 jakarta/ws/rs/NotFoundException
      // try (36 -> 49): 50 jakarta/ws/rs/NotFoundException
      // try (52 -> 57): 58 jakarta/ws/rs/NotFoundException
      // try (54 -> 67): 68 jakarta/ws/rs/NotFoundException
      // try (70 -> 85): 86 jakarta/ws/rs/NotFoundException
   }

   @PUT
   @Path("{id}")
   public Response update(FirewallRuleMO var1, @PathParam("id") String var2) throws ResourceFactory.ResourceFactoryException {
      this.a();
      return super.update(var1, var2);
   }

   @DELETE
   @Path("{id}")
   @Override
   public void delete(@PathParam("id") String var1) throws ResourceFactory.ResourceNotFoundException {
      this.a();
      super.delete(var1);
   }

   @GET
   @Path("template")
   public Item<FirewallRuleMO> template() {
      FirewallRuleMO var1 = ManagedObjectFactory.createFirewallRuleMO();
      String[] var2 = a;
      var1.setName(var2[8]);
      var1.setOrdinal(0);
      var1.setProperties(MapBuilder.builder().put(var2[6], var2[9]).map());
      return super.createTemplateItem(var1);
   }

   private void a() {
      try {
         if (!this.factory.isHardware()) {
            throw new NotFoundException();
         }
      } catch (NotFoundException var1) {
         throw a(var1);
      }
   }

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

   static {
      String[] var5 = new String[10];
      int var3 = 0;
      String var2 = "\u001ek\u0018~-*{\u0004\u001fx\u0011r\r\u0017p\u000er4*{\u001dK\t{&8\u0004\u001fx\u0011r\u0007\u0014w\u001du/.s\u0007\u0014w\u001du/.s\f#l\u0010r\u00139x\u0001|\u000ec:\u0007\u001ek\u0018~-*{";
      int var4 = "\u001ek\u0018~-*{\u0004\u001fx\u0011r\r\u0017p\u000er4*{\u001dK\t{&8\u0004\u001fx\u0011r\u0007\u0014w\u001du/.s\u0007\u0014w\u001du/.s\f#l\u0010r\u00139x\u0001|\u000ec:\u0007\u001ek\u0018~-*{"
         .length();
      char var1 = 7;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 82;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = b(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     firewallRule_URI = a[2];
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "8a\fz27~\tB\bx;!k\u0000h3\u007f23\r<v\u000ez;$~\u0015R\u0000f+3";
                  var4 = "8a\fz27~\tB\bx;!k\u0000h3\u007f23\r<v\u000ez;$~\u0015R\u0000f+3".length();
                  var1 = 20;
                  var7 = -1;
            }

            var10000 = 79;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 69);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 35;
            case 1 -> 75;
            case 2 -> 46;
            case 3 -> 69;
            case 4 -> 17;
            case 5 -> 25;
            default -> 69;
         });
      }

      return new String(var10001).intern();
   }
}
