package com.l7tech.gateway.common.mapping;

import java.io.Serializable;

public class MessageContextMapping implements Serializable, Comparable<MessageContextMapping> {
   private MessageContextMapping.MappingType mappingType;
   private String key;
   private String value;
   static final long serialVersionUID = 6093329797974170476L;
   private static final String[] a;

   public MessageContextMapping() {
   }

   public MessageContextMapping asCopy() {
      MessageContextMapping var1 = new MessageContextMapping();
      var1.setMappingType(this.mappingType);
      var1.setKey(this.key);
      var1.setValue(this.value);
      return var1;
   }

   public MessageContextMapping(MessageContextMapping.MappingType var1, String var2, String var3) {
      this.mappingType = var1;
      this.key = var2;
      this.value = var3;
   }

   public MessageContextMapping.MappingType getMappingType() {
      return this.mappingType;
   }

   public void setMappingType(MessageContextMapping.MappingType var1) {
      this.mappingType = var1;
   }

   public String getKey() {
      return this.key;
   }

   public void setKey(String var1) {
      this.key = var1;
   }

   public String getValue() {
      return this.value;
   }

   public void setValue(String var1) {
      this.value = var1;
   }

   public boolean hasEqualTypeAndKeyExcludingValue(MessageContextMapping var1) {
      boolean var2;
      if (this.mappingType == null) {
         var2 = var1.getMappingType() == null;
      } else {
         var2 = this.mappingType.equals(var1.getMappingType());
      }

      if (!var2) {
         return false;
      } else if (this.key == null) {
         return var1.getKey() == null;
      } else {
         return var1.getKey() == null ? this.key == null : this.key.toLowerCase().equals(var1.getKey().toLowerCase());
      }
   }

   @Override
   public boolean equals(Object var1) {
      if (this == var1) {
         return true;
      }

      if (var1 != null && this.getClass() == var1.getClass()) {
         MessageContextMapping var2 = (MessageContextMapping)var1;
         if (this.mappingType != null ? this.mappingType.equals(var2.mappingType) : var2.mappingType == null) {
            if (this.key == null && var2.getKey() != null) {
               return false;
            } else if (this.key != null && var2.getKey() == null) {
               return false;
            } else if (this.key != null && var2.getKey() != null && !this.key.equalsIgnoreCase(var2.getKey())) {
               return false;
            } else {
               return this.value != null ? this.value.equals(var2.value) : var2.value == null;
            }
         } else {
            return false;
         }
      } else {
         return false;
      }
   }

   @Override
   public int hashCode() {
      int var1 = this.mappingType != null ? this.mappingType.hashCode() : 0;
      var1 = 31 * var1 + (this.key != null ? this.key.toLowerCase().hashCode() : 0);
      return 31 * var1 + (this.value != null ? this.value.hashCode() : 0);
   }

   public int compareTo(MessageContextMapping var1) {
      MessageContextMapping.MappingType var2 = this.getMappingType();
      MessageContextMapping.MappingType var3 = var1.getMappingType();
      if (var2 == null && var3 == null) {
         return 0;
      } else if (var2 == null) {
         return -1;
      } else if (var3 == null) {
         return 1;
      } else if (!var2.equals(var3)) {
         return var2.compareTo(var3);
      } else {
         String var4 = this.getKey();
         String var5 = var1.getKey();
         if (var4 == null && var5 == null) {
            return 0;
         } else if (var4 == null) {
            return -1;
         } else if (var5 == null) {
            return 1;
         } else if (!var4.equals(var5)) {
            return var4.toLowerCase().compareTo(var5.toLowerCase());
         } else {
            String var6 = this.getValue();
            String var7 = var1.getValue();
            if (var6 == null && var7 == null) {
               return 0;
            } else if (var6 == null) {
               return -1;
            } else if (var7 == null) {
               return 1;
            } else {
               return !var6.equals(var7) ? var6.compareTo(var7) : 0;
            }
         }
      }
   }

   @Override
   public String toString() {
      String var10000 = String.valueOf(this.getMappingType());
      String var1 = this.getValue();
      String var2 = this.getKey();
      String var3 = var10000;
      String[] var4 = a;
      return var4[4] + var3 + var4[5] + var2 + var4[0] + var1 + "\n";
   }

   public static MessageContextMapping getDefaultIPAddressMapping() {
      String[] var0 = a;
      return new MessageContextMapping(MessageContextMapping.MappingType.IP_ADDRESS, var0[1], var0[6]);
   }

   public static MessageContextMapping getDefaultAuthUserMapping() {
      String[] var0 = a;
      return new MessageContextMapping(MessageContextMapping.MappingType.AUTH_USER, var0[2], var0[3]);
   }

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "\u00073\u001f;%^Hj^(*9BC7\nD.!\n\u0011stH--\tL+*\u0003\nbuH,\u0010%-'\u0018\u0001rk-:;\r\u001cycIW\u000e@\u001f\u000e;<YA-*\u0007;0\u0017\u001c";
      int var4 = "\u00073\u001f;%^Hj^(*9BC7\nD.!\n\u0011stH--\tL+*\u0003\nbuH,\u0010%-'\u0018\u0001rk-:;\r\u001cycIW\u000e@\u001f\u000e;<YA-*\u0007;0\u0017\u001c"
         .length();
      char var1 = 15;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 121;
         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 = "gS\u007f[E>(\n>UNLwfW\u0010EMGxa\u0012\u000bMZ[m|\u0019\u0003)7";
                  var4 = "gS\u007f[E>(\n>UNLwfW\u0010EMGxa\u0012\u000bMZ[m|\u0019\u0003)7".length();
                  var1 = 15;
                  var7 = -1;
            }

            var10000 = 25;
            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] ^ 95);
      }

      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 -> 116;
            case 1 -> 7;
            case 2 -> 7;
            case 3 -> 50;
            case 4 -> 44;
            case 5 -> 78;
            default -> 95;
         });
      }

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

   public enum MappingType {
      IP_ADDRESS,
      AUTH_USER,
      CUSTOM_MAPPING;

      private final String name;

      MappingType(String var3) {
         this.name = var3;
      }

      public String getName() {
         return this.name;
      }

      public static MessageContextMapping.MappingType byName(String var0) {
         MessageContextMapping.MappingType var1 = null;

         for (MessageContextMapping.MappingType var5 : values()) {
            if (var5.getName().equals(var0)) {
               var1 = var5;
            }
         }

         return var1;
      }

      // $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[6];
         int var4 = 0;
         String var3 = "C$w\r?5YM0t\t96A\u0012A\u0004P1\u0015\u0016ri\u0012E-\u0015\u001c&U\u0002A+\u000eC\u0004W-\u001f\u0015&M\u0010T)\u0019\u0016a\nI!\u0004\u0018\u0014\u001cte\u0002W";
         int var5 = "C$w\r?5YM0t\t96A\u0012A\u0004P1\u0015\u0016ri\u0012E-\u0015\u001c&U\u0002A+\u000eC\u0004W-\u001f\u0015&M\u0010T)\u0019\u0016a\nI!\u0004\u0018\u0014\u001cte\u0002W"
            .length();
         char var2 = 14;
         int var7 = -1;

         label25:
         while (true) {
            byte var10000 = 2;
            String var10001 = var3.substring(++var7, var7 + var2);
            byte var10002 = -1;

            while (true) {
               String var8 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var0[var4++] = var8;
                     if ((var7 += var2) >= var5) {
                        IP_ADDRESS = new MessageContextMapping.MappingType(var0[3]);
                        AUTH_USER = new MessageContextMapping.MappingType(var0[1]);
                        CUSTOM_MAPPING = new MessageContextMapping.MappingType(var0[2]);
                        return;
                     }

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

                     var3 = "L)}\u001c\" XH.\nD,v\u001591YH/z";
                     var5 = "L)}\u001c\" XH.\nD,v\u001591YH/z".length();
                     var2 = '\t';
                     var7 = -1;
               }

               var10000 = 15;
               var10001 = var3.substring(++var7, var7 + var2);
               var10002 = 0;
            }
         }
      }

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

         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 -> 2;
               case 1 -> 115;
               case 2 -> 38;
               case 3 -> 91;
               case 4 -> 114;
               case 5 -> 122;
               default -> 4;
            });
         }

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