package com.l7tech.gateway.api.impl;

import com.l7tech.gateway.api.AccessibleObject;
import com.l7tech.gateway.api.Accessor;
import com.l7tech.gateway.api.ManagementRuntimeException;
import jakarta.xml.bind.annotation.XmlSchema;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

public class AccessorSupport {
   private static final String[] a;

   public static String getResourceName(Class<? extends AccessibleObject> var0) {
      AccessorSupport.AccessibleResource var1 = var0.getAnnotation(AccessorSupport.AccessibleResource.class);

      try {
         if (var1 == null) {
            throw new ManagementRuntimeException(a[0] + var0.getName() + a[2]);
         }
      } catch (ManagementRuntimeException var2) {
         throw var2;
      }

      return var1.name();
   }

   public static String getResourceUri(Class<? extends AccessibleObject> var0) {
      XmlSchema var1 = Accessor.class.getPackage().getAnnotation(XmlSchema.class);

      try {
         if (var1 == null) {
            throw new ManagementRuntimeException(a[1]);
         }
      } catch (ManagementRuntimeException var2) {
         throw var2;
      }

      return var1.namespace() + "/" + getResourceName(var0);
   }

   static {
      String[] var5 = new String[3];
      int var3 = 0;
      String var2 = "\u0017$\u001bB1iNz,\u0006_7sH.$\u0007_xaF(m\u001aT+h\\(.\r\u0011\u007f#\u0017$\u001bB1iNz,\u0006_7sH.$\u0007_xaF(m)a\u0011'Y;.\u0003P?b\u0007\u0002}c";
      int var4 = "\u0017$\u001bB1iNz,\u0006_7sH.$\u0007_xaF(m\u001aT+h\\(.\r\u0011\u007f#\u0017$\u001bB1iNz,\u0006_7sH.$\u0007_xaF(m)a\u0011'Y;.\u0003P?b\u0007\u0002}c"
         .length();
      char var1 = '!';
      int var0 = -1;

      while (true) {
         String var10002 = a(a(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            a = var5;
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

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

      return var10000;
   }

   private static String a(char[] var0) {
      int var10002 = var0.length;
      char[] var10001 = var0;
      int var10000 = var10002;

      for (int var1 = 0; var10000 > var1; var1++) {
         var10001[var1] = (char)(var10001[var1] ^ switch (var1 % 7) {
            case 0 -> 90;
            case 1 -> 77;
            case 2 -> 104;
            case 3 -> 49;
            case 4 -> 88;
            case 5 -> 7;
            default -> 41;
         });
      }

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

   @Retention(RetentionPolicy.RUNTIME)
   @Target(ElementType.TYPE)
   public @interface AccessibleResource {
      String name();

      String accessorClassname() default "com.l7tech.gateway.api.Accessor";
   }
}
