package com.l7tech.policy.bundle;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class BundleMapping implements Serializable {
   private final Map<String, String> oldToNewJdbcConnName = new HashMap<>();
   private final Map<String, String> oldToNewEncassGuid = new HashMap<>();
   static final long serialVersionUID = 329632644572476909L;
   private static final String[] a;

   public void addMapping(BundleMapping.Type var1, String var2, String var3) {
      try {
         switch (var1) {
            case JDBC_CONNECTION_NAME:
               this.oldToNewJdbcConnName.put(var2, var3);
               return;
            case ENCAPSULATE_ASSERTION_GUID:
               break;
            default:
               throw new RuntimeException(a[2] + var1);
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      this.oldToNewEncassGuid.put(var2, var3);
   }

   @NotNull
   public Map<String, String> getMappings(BundleMapping.Type param1) {
      // $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 1
      // 01: invokevirtual com/l7tech/policy/bundle/BundleMapping$Type.ordinal ()I
      // 04: lookupswitch 95 2 0 28 1 65
      // 20: new java/util/HashMap
      // 23: dup
      // 24: aload 0
      // 25: getfield com/l7tech/policy/bundle/BundleMapping.oldToNewJdbcConnName Ljava/util/Map;
      // 28: invokespecial java/util/HashMap.<init> (Ljava/util/Map;)V
      // 2b: invokestatic java/util/Collections.unmodifiableMap (Ljava/util/Map;)Ljava/util/Map;
      // 2e: dup
      // 2f: ifnonnull 44
      // 32: goto 39
      // 35: invokestatic com/l7tech/policy/bundle/BundleMapping.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 38: athrow
      // 39: bipush 0
      // 3a: invokestatic com/l7tech/policy/bundle/BundleMapping.$$$reportNull$$$0 (I)V
      // 3d: goto 44
      // 40: invokestatic com/l7tech/policy/bundle/BundleMapping.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 43: athrow
      // 44: areturn
      // 45: new java/util/HashMap
      // 48: dup
      // 49: aload 0
      // 4a: getfield com/l7tech/policy/bundle/BundleMapping.oldToNewEncassGuid Ljava/util/Map;
      // 4d: invokespecial java/util/HashMap.<init> (Ljava/util/Map;)V
      // 50: invokestatic java/util/Collections.unmodifiableMap (Ljava/util/Map;)Ljava/util/Map;
      // 53: dup
      // 54: ifnonnull 62
      // 57: bipush 1
      // 58: invokestatic com/l7tech/policy/bundle/BundleMapping.$$$reportNull$$$0 (I)V
      // 5b: goto 62
      // 5e: invokestatic com/l7tech/policy/bundle/BundleMapping.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 61: athrow
      // 62: areturn
      // 63: new java/lang/RuntimeException
      // 66: dup
      // 67: aload 1
      // 68: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 6b: getstatic com/l7tech/policy/bundle/BundleMapping.a [Ljava/lang/String;
      // 6e: bipush 3
      // 6f: aaload
      // 70: swap
      // 71: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 76: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;)V
      // 79: athrow
      // try (0 -> 11): 12 java/lang/RuntimeException
      // try (3 -> 16): 17 java/lang/RuntimeException
      // try (20 -> 30): 31 java/lang/RuntimeException
   }

   @Nullable
   public String getMapping(BundleMapping.Type var1, String var2) {
      return this.getMappings(var1).get(var2);
   }

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

   static {
      String[] var5 = new String[5];
      int var3 = 0;
      String var2 = "lR&7jUj@<$&PHiH<l0\n\u0005u\fq<0P\u0000hChi1ATs^ri-QLj\u000bKy=\u000eEPvEr.0\u001ayr:6TPi^h,'\u0004Mg\\l -C\u0000rUl,y\u0004";
      int var4 = "lR&7jUj@<$&PHiH<l0\n\u0005u\fq<0P\u0000hChi1ATs^ri-QLj\u000bKy=\u000eEPvEr.0\u001ayr:6TPi^h,'\u0004Mg\\l -C\u0000rUl,y\u0004".length();
      char var1 = '*';
      int var7 = -1;

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

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

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

                  var2 = "GL\u0004\bjnW`V\u0012\u0019:sYbR\u001e\u0013}>LkR\u0012G:&qM\u001aRv)LwA\u001fRjqT{A\u000eRxkVvN\u0012RXkVvN\u00120{nH{L\u0010";
                  var4 = "GL\u0004\bjnW`V\u0012\u0019:sYbR\u001e\u0013}>LkR\u0012G:&qM\u001aRv)LwA\u001fRjqT{A\u000eRxkVvN\u0012RXkVvN\u00120{nH{L\u0010"
                     .length();
                  var1 = 26;
                  var7 = -1;
            }

            var10000 = 13;
            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] ^ 53);
      }

      return var10000;
   }

   private static String a(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 -> 31;
            case 1 -> 47;
            case 2 -> 122;
            case 3 -> 112;
            case 4 -> 23;
            case 5 -> 19;
            default -> 53;
         });
      }

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

   public enum Type {
      JDBC_CONNECTION_NAME,
      ENCAPSULATE_ASSERTION_GUID;

      // $VF: Failed to inline enum fields
      // 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!)
      static {
         String[] var0 = new String[2];
         int var4 = 0;
         String var3 = "\u0014\u0002)|qR~\u001d\r>x~@x\u0002\t8ihNe\u000e\u000b?te\u0014\u001b\b(~~Bd\u001f\u0002/~uHd\u001f\u0013$|lD";
         int var5 = "\u0014\u0002)|qR~\u001d\r>x~@x\u0002\t8ihNe\u000e\u000b?te\u0014\u001b\b(~~Bd\u001f\u0002/~uHd\u001f\u0013$|lD".length();
         char var2 = 26;
         int var1 = -1;

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

            var2 = var3.charAt(var1);
         }
      }

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

         return var10000;
      }

      private static String a(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 -> 111;
               case 1 -> 114;
               case 2 -> 84;
               case 3 -> 3;
               case 4 -> 31;
               case 5 -> 63;
               default -> 21;
            });
         }

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