package com.l7tech.gateway.common.mapping;

import com.l7tech.objectmodel.imp.PersistentEntityImp;
import com.l7tech.util.HexUtils;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import org.hibernate.annotations.Proxy;

@Entity
@Proxy(lazy = false)
@Table(name = "message_context_mapping_keys")
public class MessageContextMappingKeys extends PersistentEntityImp {
   private static final Logger logger;
   private static final int MAX_MAPPING_TYPE_LENGTH = 36;
   private static final int MAX_KEY_LENGTH = 128;
   private String digested;
   private long createTime;
   private MessageContextMapping.MappingType mapping1_type;
   private MessageContextMapping.MappingType mapping2_type;
   private MessageContextMapping.MappingType mapping3_type;
   private MessageContextMapping.MappingType mapping4_type;
   private MessageContextMapping.MappingType mapping5_type;
   private String mapping1_key;
   private String mapping2_key;
   private String mapping3_key;
   private String mapping4_key;
   private String mapping5_key;
   static final long serialVersionUID = -9071903759883878894L;
   private static final String[] b;

   @Version
   @Column(name = "version")
   public int getVersion() {
      return super.getVersion();
   }

   @Column(name = "digested")
   public String getDigested() {
      return this.digested;
   }

   public void setDigested(String var1) {
      this.digested = var1;
   }

   @Column(name = "create_time")
   public long getCreateTime() {
      return this.createTime;
   }

   public void setCreateTime(long var1) {
      this.createTime = var1;
   }

   @Enumerated(EnumType.STRING)
   @Column(name = "mapping1_type", length = 36)
   public MessageContextMapping.MappingType getMapping1_type() {
      return this.mapping1_type;
   }

   public void setMapping1_type(MessageContextMapping.MappingType var1) {
      this.mapping1_type = var1;
   }

   @Column(name = "mapping1_key", length = 128)
   public String getMapping1_key() {
      return this.mapping1_key;
   }

   public void setMapping1_key(String var1) {
      this.mapping1_key = var1;
   }

   @Enumerated(EnumType.STRING)
   @Column(name = "mapping2_type", length = 36)
   public MessageContextMapping.MappingType getMapping2_type() {
      return this.mapping2_type;
   }

   public void setMapping2_type(MessageContextMapping.MappingType var1) {
      this.mapping2_type = var1;
   }

   @Column(name = "mapping2_key", length = 128)
   public String getMapping2_key() {
      return this.mapping2_key;
   }

   public void setMapping2_key(String var1) {
      this.mapping2_key = var1;
   }

   @Enumerated(EnumType.STRING)
   @Column(name = "mapping3_type", length = 36)
   public MessageContextMapping.MappingType getMapping3_type() {
      return this.mapping3_type;
   }

   public void setMapping3_type(MessageContextMapping.MappingType var1) {
      this.mapping3_type = var1;
   }

   @Column(name = "mapping3_key", length = 128)
   public String getMapping3_key() {
      return this.mapping3_key;
   }

   public void setMapping3_key(String var1) {
      this.mapping3_key = var1;
   }

   @Enumerated(EnumType.STRING)
   @Column(name = "mapping4_type", length = 36)
   public MessageContextMapping.MappingType getMapping4_type() {
      return this.mapping4_type;
   }

   public void setMapping4_type(MessageContextMapping.MappingType var1) {
      this.mapping4_type = var1;
   }

   @Column(name = "mapping4_key", length = 128)
   public String getMapping4_key() {
      return this.mapping4_key;
   }

   public void setMapping4_key(String var1) {
      this.mapping4_key = var1;
   }

   @Enumerated(EnumType.STRING)
   @Column(name = "mapping5_type", length = 36)
   public MessageContextMapping.MappingType getMapping5_type() {
      return this.mapping5_type;
   }

   public void setMapping5_type(MessageContextMapping.MappingType var1) {
      this.mapping5_type = var1;
   }

   @Column(name = "mapping5_key", length = 128)
   public String getMapping5_key() {
      return this.mapping5_key;
   }

   public void setMapping5_key(String var1) {
      this.mapping5_key = var1;
   }

   public List<MessageContextMapping> obtainMappingsWithEmptyValues() {
      MessageContextMapping.MappingType[] var1 = new MessageContextMapping.MappingType[]{
         this.mapping1_type, this.mapping2_type, this.mapping3_type, this.mapping4_type, this.mapping5_type
      };
      String[] var2 = new String[]{this.mapping1_key, this.mapping2_key, this.mapping3_key, this.mapping4_key, this.mapping5_key};
      ArrayList var3 = new ArrayList(5);

      for (int var4 = 0; var4 < var1.length && var1[var4] != null; var4++) {
         if (var2[var4] == null) {
            Logger var10000 = logger;
            String var10001 = String.valueOf(var1[var4]);
            String[] var5 = b;
            var10000.warning(var5[0] + var10001 + var5[1]);
            break;
         }

         var3.add(new MessageContextMapping(var1[var4], var2[var4], null));
      }

      return var3;
   }

   public void setTypeAndKey(int var1, MessageContextMapping.MappingType var2, String var3) {
      switch (var1) {
         case 0:
            this.setMapping1_type(var2);
            this.setMapping1_key(var3);
            break;
         case 1:
            this.setMapping2_type(var2);
            this.setMapping2_key(var3);
            break;
         case 2:
            this.setMapping3_type(var2);
            this.setMapping3_key(var3);
            break;
         case 3:
            this.setMapping4_type(var2);
            this.setMapping4_key(var3);
            break;
         case 4:
            this.setMapping5_type(var2);
            this.setMapping5_key(var3);
      }
   }

   public boolean matches(MessageContextMappingKeys var1) {
      if (this.mapping1_key != null ? this.mapping1_key.equalsIgnoreCase(var1.mapping1_key) : var1.mapping1_key == null) {
         if (this.mapping1_type != null ? this.mapping1_type.equals(var1.mapping1_type) : var1.mapping1_type == null) {
            if (this.mapping2_key != null ? this.mapping2_key.equalsIgnoreCase(var1.mapping2_key) : var1.mapping2_key == null) {
               if (this.mapping2_type != null ? this.mapping2_type.equals(var1.mapping2_type) : var1.mapping2_type == null) {
                  if (this.mapping3_key != null ? this.mapping3_key.equalsIgnoreCase(var1.mapping3_key) : var1.mapping3_key == null) {
                     if (this.mapping3_type != null ? this.mapping3_type.equals(var1.mapping3_type) : var1.mapping3_type == null) {
                        if (this.mapping4_key != null ? this.mapping4_key.equalsIgnoreCase(var1.mapping4_key) : var1.mapping4_key == null) {
                           if (this.mapping4_type != null ? this.mapping4_type.equals(var1.mapping4_type) : var1.mapping4_type == null) {
                              if (this.mapping5_key != null ? this.mapping5_key.equalsIgnoreCase(var1.mapping5_key) : var1.mapping5_key == null) {
                                 return this.mapping5_type != null ? this.mapping5_type.equals(var1.mapping5_type) : var1.mapping5_type == null;
                              } else {
                                 return false;
                              }
                           } else {
                              return false;
                           }
                        } else {
                           return false;
                        }
                     } else {
                        return false;
                     }
                  } else {
                     return false;
                  }
               } else {
                  return false;
               }
            } else {
               return false;
            }
         } else {
            return false;
         }
      } else {
         return false;
      }
   }

   public String generateDigest() {
      List var1 = this.obtainMappingsWithEmptyValues();
      StringBuilder var2 = new StringBuilder();

      for (MessageContextMapping var6 : var1) {
         MessageContextMapping.MappingType var3 = var6.getMappingType();
         String var4 = var6.getKey();
         if (var4 != null) {
            var4 = var4.toLowerCase();
         }

         var2.append(var3).append("#").append(var4).append("#");
      }

      String var7 = var2.toString();
      return this.digested = HexUtils.hexDump(HexUtils.getMd5Digest(HexUtils.encodeUtf8(var7)));
   }

   static {
      String[] var5 = new String[2];
      int var3 = 0;
      String var2 = "B@w\u001c\u0014Yp6Gt\u001c\u00126@sO_Rfb\bpY\u001aR)eMf\u0012";
      int var4 = "B@w\u001c\u0014Yp6Gt\u001c\u00126@sO_Rfb\bpY\u001aR)eMf\u0012".length();
      char var1 = 11;
      int var0 = -1;

      while (true) {
         String var10002 = b(45, b(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            b = var5;
            logger = Logger.getLogger(MessageContextMappingKeys.class.getName());
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

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

      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 -> 59;
            case 1 -> 5;
            case 2 -> 63;
            case 3 -> 17;
            case 4 -> 82;
            case 5 -> 17;
            default -> 36;
         });
      }

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