package com.l7tech.server.mapping;

import com.l7tech.gateway.common.mapping.MessageContextMappingKeys;
import com.l7tech.server.util.ReadOnlyHibernateCallback;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.query.Query;

class b extends ReadOnlyHibernateCallback {
   final String val$digested;
   final MessageContextMappingKeys val$lookupKeys;
   final MessageContextMappingKeyManagerImpl this$0;
   private static final String a;

   b(MessageContextMappingKeyManagerImpl var1, String var2, MessageContextMappingKeys var3) {
      this.this$0 = var1;
      this.val$digested = var2;
      this.val$lookupKeys = var3;
   }

   @Override
   public Object doInHibernateReadOnly(Session var1) throws HibernateException, SQLException {
      Query var2 = var1.createQuery(this.this$0.n);
      var2.setParameter(a, this.val$digested);
      List var3 = var2.list();

      try {
         if (var3.size() == 0) {
            return null;
         }
      } catch (HibernateException var8) {
         throw a(var8);
      }

      if (var3.size() == 1) {
         MessageContextMappingKeys var4 = (MessageContextMappingKeys)var3.iterator().next();

         try {
            if (var4.matches(this.val$lookupKeys)) {
               return var4;
            }
         } catch (HibernateException var7) {
            throw a(var7);
         }
      } else {
         for (MessageContextMappingKeys var5 : var3) {
            try {
               if (var5.matches(this.val$lookupKeys)) {
                  return var5;
               }
            } catch (HibernateException var6) {
               throw a(var6);
            }
         }
      }

      return null;
   }

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

   static {
      String var10002 = a(85, a("&0\u0006\u0016B3\\&"));
      byte var10001 = -1;
      a = var10002;
   }

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

      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 -> 23;
            case 1 -> 12;
            case 2 -> 52;
            case 3 -> 38;
            case 4 -> 100;
            case 5 -> 18;
            default -> 108;
         });
      }

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