package com.l7tech.policy.assertion.ext.entity;

import java.io.Serializable;
import java.util.Map;
import java.util.TreeMap;

public final class CustomReferenceEntitiesSupport implements Serializable {
   private static final long serialVersionUID = -2840511468657076023L;
   final Map<String, CustomReferenceEntitiesSupport.ReferenceElement> references = new TreeMap<>();
   private static final String[] a;

   public String getReference(String var1) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException(a[4]);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      CustomReferenceEntitiesSupport.ReferenceElement var2 = this.references.get(var1);

      try {
         if (var2 != null) {
            return var2.getId();
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return null;
   }

   public void setReference(String var1, String var2, CustomEntityType var3) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException(a[3]);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

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

      this.references.put(var1, new CustomReferenceEntitiesSupport.ReferenceElement(var2, null, var3, null));
   }

   public void setKeyValueStoreReference(String var1, String var2, String var3, CustomEntitySerializer var4) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException(a[4]);
         }
      } catch (IllegalArgumentException var7) {
         throw a(var7);
      }

      try {
         if (var2 == null) {
            throw new IllegalArgumentException(a[0]);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      try {
         if (var3 == null) {
            throw new IllegalArgumentException(a[2]);
         }
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }

      this.references.put(var1, new CustomReferenceEntitiesSupport.ReferenceElement(var2, var3, CustomEntityType.KeyValueStore, var4));
   }

   public boolean removeReference(String var1) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException(a[4]);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      try {
         if (this.references.remove(var1) != null) {
            return true;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return false;
   }

   @Override
   public boolean equals(Object 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 0
      // 01: aload 1
      // 02: if_acmpeq 2d
      // 05: aload 1
      // 06: instanceof com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport
      // 09: ifeq 35
      // 0c: goto 13
      // 0f: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 12: athrow
      // 13: aload 0
      // 14: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport.references Ljava/util/Map;
      // 17: aload 1
      // 18: checkcast com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport
      // 1b: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport.references Ljava/util/Map;
      // 1e: invokeinterface java/util/Map.equals (Ljava/lang/Object;)Z 2
      // 23: ifeq 35
      // 26: goto 2d
      // 29: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 2c: athrow
      // 2d: bipush 1
      // 2e: goto 36
      // 31: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 34: athrow
      // 35: bipush 0
      // 36: ireturn
      // try (0 -> 6): 7 java/lang/IllegalArgumentException
      // try (3 -> 16): 17 java/lang/IllegalArgumentException
      // try (9 -> 21): 21 java/lang/IllegalArgumentException
   }

   @Override
   public int hashCode() {
      return this.references.hashCode();
   }

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

   static {
      String[] var5 = new String[5];
      int var3 = 0;
      String var2 = "\u0015qjJ@I.\u0010{gJAM`\u0010a\u007f\u0006\u0011\u0017p3\tBF.\u0011`3\bF\b.\u000bx\u007f.\u0015qj:QM&\u0017l3\tBF.\u0011`3\bF\b.\u000bx\u007fJEG2^wf\u0019WG-S\u007fv\u0013\u000e^!\u0012av\u0019";
      int var4 = "\u0015qjJ@I.\u0010{gJAM`\u0010a\u007f\u0006\u0011\u0017p3\tBF.\u0011`3\bF\b.\u000bx\u007f.\u0015qj:QM&\u0017l3\tBF.\u0011`3\bF\b.\u000bx\u007fJEG2^wf\u0019WG-S\u007fv\u0013\u000e^!\u0012av\u0019"
         .length();
      char var1 = 18;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 4;
         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 = "y\u0006\u0001~,,Sl\u0017;m(+\u0006{\u0013\u001bb*:\u0006z\u0017Ub0\"J\u001cy\u0006\u0001~,,Sl\u0017;m(+\u0006{\u0013\u001bb*:\u0006z\u0017Ub0\"J";
                  var4 = "y\u0006\u0001~,,Sl\u0017;m(+\u0006{\u0013\u001bb*:\u0006z\u0017Ub0\"J\u001cy\u0006\u0001~,,Sl\u0017;m(+\u0006{\u0013\u001bb*:\u0006z\u0017Ub0\"J"
                     .length();
                  var1 = 28;
                  var7 = -1;
            }

            var10000 = 98;
            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] ^ 68);
      }

      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 -> 122;
            case 1 -> 16;
            case 2 -> 23;
            case 3 -> 110;
            case 4 -> 39;
            case 5 -> 44;
            default -> 68;
         });
      }

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

   static final class ReferenceElement implements Serializable {
      private static final long serialVersionUID = -1519739648961747529L;
      private String id;
      private final String keyPrefix;
      private final String type;
      private final String entitySerializerClassName;
      private static final String[] a;

      private ReferenceElement(String var1, String var2, CustomEntityType var3, CustomEntitySerializer var4) {
         if (var3 == null) {
            throw new IllegalArgumentException(a[1]);
         }

         CustomReferenceEntitiesSupport.ReferenceElement var10000;
         String var10001;
         label19: {
            try {
               this.id = var1;
               this.keyPrefix = var2;
               this.type = var3.name();
               var10000 = this;
               if (var4 != null) {
                  var10001 = var4.getClass().getName();
                  break label19;
               }
            } catch (IllegalArgumentException var5) {
               throw a(var5);
            }

            var10001 = null;
         }

         var10000.entitySerializerClassName = var10001;
      }

      public String getId() {
         return this.id;
      }

      void setId(String var1) {
         try {
            if (var1 == null) {
               throw new IllegalArgumentException(a[0]);
            }
         } catch (IllegalArgumentException var2) {
            throw a(var2);
         }

         this.id = var1;
      }

      public String getKeyPrefix() {
         return this.keyPrefix;
      }

      public String getType() {
         return this.type;
      }

      public String getSerializerClassName() {
         return this.entitySerializerClassName;
      }

      @Override
      public boolean equals(Object 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 0
         // 01: aload 1
         // 02: if_acmpne 0b
         // 05: bipush 1
         // 06: ireturn
         // 07: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 0a: athrow
         // 0b: aload 1
         // 0c: instanceof com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement
         // 0f: ifeq a6
         // 12: aload 1
         // 13: checkcast com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement
         // 16: astore 2
         // 17: aload 0
         // 18: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.id Ljava/lang/String;
         // 1b: aload 2
         // 1c: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.id Ljava/lang/String;
         // 1f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 22: ifeq a4
         // 25: aload 0
         // 26: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.keyPrefix Ljava/lang/String;
         // 29: ifnull 4f
         // 2c: goto 33
         // 2f: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 32: athrow
         // 33: aload 0
         // 34: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.keyPrefix Ljava/lang/String;
         // 37: aload 2
         // 38: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.keyPrefix Ljava/lang/String;
         // 3b: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 3e: ifeq a4
         // 41: goto 48
         // 44: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 47: athrow
         // 48: goto 56
         // 4b: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 4e: athrow
         // 4f: aload 2
         // 50: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.keyPrefix Ljava/lang/String;
         // 53: ifnonnull a4
         // 56: aload 0
         // 57: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.type Ljava/lang/String;
         // 5a: aload 2
         // 5b: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.type Ljava/lang/String;
         // 5e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 61: ifeq a4
         // 64: goto 6b
         // 67: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 6a: athrow
         // 6b: aload 0
         // 6c: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.entitySerializerClassName Ljava/lang/String;
         // 6f: ifnull 95
         // 72: goto 79
         // 75: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 78: athrow
         // 79: aload 0
         // 7a: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.entitySerializerClassName Ljava/lang/String;
         // 7d: aload 2
         // 7e: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.entitySerializerClassName Ljava/lang/String;
         // 81: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 84: ifeq a4
         // 87: goto 8e
         // 8a: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 8d: athrow
         // 8e: goto 9c
         // 91: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 94: athrow
         // 95: aload 2
         // 96: getfield com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.entitySerializerClassName Ljava/lang/String;
         // 99: ifnonnull a4
         // 9c: bipush 1
         // 9d: goto a5
         // a0: invokestatic com/l7tech/policy/assertion/ext/entity/CustomReferenceEntitiesSupport$ReferenceElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // a3: athrow
         // a4: bipush 0
         // a5: ireturn
         // a6: bipush 0
         // a7: ireturn
         // try (0 -> 5): 5 java/lang/IllegalArgumentException
         // try (13 -> 22): 23 java/lang/IllegalArgumentException
         // try (19 -> 31): 32 java/lang/IllegalArgumentException
         // try (25 -> 35): 35 java/lang/IllegalArgumentException
         // try (37 -> 46): 47 java/lang/IllegalArgumentException
         // try (40 -> 52): 53 java/lang/IllegalArgumentException
         // try (49 -> 61): 62 java/lang/IllegalArgumentException
         // try (55 -> 65): 65 java/lang/IllegalArgumentException
         // try (67 -> 72): 72 java/lang/IllegalArgumentException
      }

      @Override
      public int hashCode() {
         int var1 = this.id.hashCode();

         int var10000;
         int var10001;
         label31: {
            try {
               var10000 = 31 * var1;
               if (this.keyPrefix != null) {
                  var10001 = this.keyPrefix.hashCode();
                  break label31;
               }
            } catch (IllegalArgumentException var3) {
               throw a(var3);
            }

            var10001 = 0;
         }

         var1 = var10000 + var10001;
         var1 = 31 * var1 + this.type.hashCode();

         try {
            var10000 = 31 * var1;
            if (this.entitySerializerClassName != null) {
               return var10000 + this.entitySerializerClassName.hashCode();
            }
         } catch (IllegalArgumentException var2) {
            throw a(var2);
         }

         return var10000 + 0;
      }

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

      static {
         String[] var5 = new String[2];
         int var3 = 0;
         String var2 = "0tGqp),6dGptg,,|\u000b\u0013-i\u0017w1$#7~\bf1%'y~\u0012~}";
         int var4 = "0tGqp),6dGptg,,|\u000b\u0013-i\u0017w1$#7~\bf1%'y~\u0012~}".length();
         char var1 = 17;
         int var0 = -1;

         while (true) {
            String var10002 = a(63, 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] ^ 125);
         }

         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 -> 102;
               case 1 -> 47;
               case 2 -> 88;
               case 3 -> 45;
               case 4 -> 46;
               case 5 -> 120;
               default -> 125;
            });
         }

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