package com.l7tech.server.transport.jms;

import com.l7tech.gateway.common.transport.jms.JmsEndpoint;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.JmsEndpointHeader;
import com.l7tech.objectmodel.EntityManager.UniqueType;
import com.l7tech.server.EntityHeaderUtils;
import com.l7tech.server.HibernateEntityManager;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.springframework.dao.DataAccessException;

public class JmsEndpointManagerImpl extends HibernateEntityManager<JmsEndpoint, JmsEndpointHeader> implements JmsEndpointManager {
   private static final String[] m;

   @Override
   public Collection findMessageSourceEndpoints() throws FindException {
      String[] var3 = m;
      StringBuffer var1 = new StringBuffer(var3[11]);
      var1.append(JmsEndpoint.class.getName());
      var1.append(var3[7]);

      try {
         return this.getHibernateTemplate().findByNamedParam(var1.toString(), var3[2], Boolean.TRUE);
      } catch (DataAccessException var4) {
         throw new FindException(var4.toString(), var4);
      }
   }

   @Override
   public JmsEndpoint[] findEndpointsForConnection(Goid var1) throws FindException {
      String[] var9 = m;
      StringBuffer var2 = new StringBuffer(var9[8]);
      var2.append(var9[11]);
      var2.append(JmsEndpoint.class.getName());
      var2.append(var9[9]);
      ArrayList var3 = new ArrayList();

      try {
         for (Object var6 : this.getHibernateTemplate().findByNamedParam(var2.toString(), var9[5], var1)) {
            Object[] var7 = (Object[])var6;
            if (var7[0] instanceof Goid var8) {
               var3.add(this.findByPrimaryKey(var8));
            }
         }
      } catch (DataAccessException var10) {
         throw new FindException(var10.toString(), var10);
      }

      return var3.toArray(new JmsEndpoint[0]);
   }

   @Override
   public JmsEndpointHeader[] findEndpointHeadersForConnection(Goid var1) throws FindException {
      String[] var9 = m;
      StringBuffer var2 = new StringBuffer(var9[4]);
      var2.append(var9[12]);
      var2.append(JmsEndpoint.class.getName());
      var2.append(var9[13]);
      ArrayList var3 = new ArrayList();

      try {
         for (Object var6 : this.getHibernateTemplate().findByNamedParam(var2.toString(), var9[10], var1)) {
            Object[] var7 = (Object[])var6;
            if (var7[0] instanceof Goid) {
               JmsEndpointHeader var8 = new JmsEndpointHeader(
                  var7[0].toString(),
                  String.valueOf(var7[1]),
                  String.valueOf(var7[2]),
                  Integer.parseInt(String.valueOf(var7[3])),
                  Boolean.valueOf(String.valueOf(var7[4]))
               );
               var8.setConnectionGoid(var1);
               var3.add(var8);
            }
         }

         return var3.toArray(new JmsEndpointHeader[var3.size()]);
      } catch (DataAccessException var10) {
         throw new FindException(var10.toString(), var10);
      }
   }

   public Collection<JmsEndpointHeader> findHeaders(int var1, int var2, Map<String, String> var3) throws FindException {
      Map var4 = var3;
      String[] var6 = m;
      String var5 = (String)var3.get(var6[6]);

      label18: {
         try {
            if (var5 == null || var5.isEmpty()) {
               break label18;
            }
         } catch (FindException var7) {
            throw a(var7);
         }

         var4 = new HashMap(var3);
         var6 = m;
         var4.put(var6[0], var5);
      }

      var4.remove(m[3]);
      return this.doFindHeaders(var1, var2, var4, false);
   }

   protected JmsEndpointHeader newHeader(JmsEndpoint var1) {
      JmsEndpointHeader var2 = null;
      if (var1 != null) {
         EntityHeader var3 = EntityHeaderUtils.fromEntity(var1);
         if (var3 instanceof JmsEndpointHeader) {
            var2 = (JmsEndpointHeader)var3;
         }
      }

      try {
         if (var2 != null) {
            return var2;
         }
      } catch (DataAccessException var4) {
         throw a(var4);
      }

      return (JmsEndpointHeader)super.newHeader(var1);
   }

   @Override
   protected UniqueType getUniqueType() {
      return UniqueType.NONE;
   }

   public Class getImpClass() {
      return JmsEndpoint.class;
   }

   @Override
   public Class getInterfaceClass() {
      return JmsEndpoint.class;
   }

   @Override
   public String getTableName() {
      return m[1];
   }

   @Override
   public EntityType getEntityType() {
      return EntityType.JMS_ENDPOINT;
   }

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

   static {
      String[] var5 = new String[14];
      int var3 = 0;
      String var2 = "\u0010\u0013\u007fH\f\u0014\u001far_>B\u000e\u001d{CN\r\u0013\u0017a^[7C-\u001dg_Y5\tB\u0016wK[%J\nLh\r\u0017~HY$\u0006\u001b\u001cv]U9H\n\\uBS4\n^\u0017|IJ?O\u0010\u0006<C[=CRRwC^ I\u0017\u001cf\u0003^5U\n\u001b|LN9I\u0010<s@_|\u0006\u001b\u001cv]U9H\n\\dHH#O\u0011\u001c>\r_>B\u000e\u001d{CN~K\u001b\u0001aL]5u\u0011\u0007`N_p\u000e\u001d\u001d|C_3R\u0017\u001d|jU9B\tB\u0016wK[%J\nL.^\u0005zHH5\u0006\u001b\u001cv]U9H\n\\\u007fHI#G\u0019\u0017ABO\"E\u001bR/\r\u0000=C\r\u0001sJ_\u0003I\u000b\u0000qHQ\r\u0017~HY$\u0006\u001b\u001cv]U9H\n\\uBS4\n^\u0017|IJ?O\u0010\u0006<C[=CRRwC^ I\u0017\u001cf\u0003^5U\n\u001b|LN9I\u0010<s@_|\u0006\u001b\u001cv]U9H\n\\vDI1D\u0012\u0017v\r0^\u0005zHH5\u0006\u001b\u001cv]U9H\n\\qBT>C\u001d\u0006{BT\u0017I\u0017\u00162\u0010\u001ajE\u0011\u001c|HY$O\u0011\u001cUBS4\u000e\u001d\u001d|C_3R\u0017\u001d|jU9B\u0017\u0018\u0000}@\u001a5H\u001a\u0002}DT$\u0006\u0017\u001c2NV1U\rR";
      int var4 = "\u0010\u0013\u007fH\f\u0014\u001far_>B\u000e\u001d{CN\r\u0013\u0017a^[7C-\u001dg_Y5\tB\u0016wK[%J\nLh\r\u0017~HY$\u0006\u001b\u001cv]U9H\n\\uBS4\n^\u0017|IJ?O\u0010\u0006<C[=CRRwC^ I\u0017\u001cf\u0003^5U\n\u001b|LN9I\u0010<s@_|\u0006\u001b\u001cv]U9H\n\\dHH#O\u0011\u001c>\r_>B\u000e\u001d{CN~K\u001b\u0001aL]5u\u0011\u0007`N_p\u000e\u001d\u001d|C_3R\u0017\u001d|jU9B\tB\u0016wK[%J\nL.^\u0005zHH5\u0006\u001b\u001cv]U9H\n\\\u007fHI#G\u0019\u0017ABO\"E\u001bR/\r\u0000=C\r\u0001sJ_\u0003I\u000b\u0000qHQ\r\u0017~HY$\u0006\u001b\u001cv]U9H\n\\uBS4\n^\u0017|IJ?O\u0010\u0006<C[=CRRwC^ I\u0017\u001cf\u0003^5U\n\u001b|LN9I\u0010<s@_|\u0006\u001b\u001cv]U9H\n\\vDI1D\u0012\u0017v\r0^\u0005zHH5\u0006\u001b\u001cv]U9H\n\\qBT>C\u001d\u0006{BT\u0017I\u0017\u00162\u0010\u001ajE\u0011\u001c|HY$O\u0011\u001cUBS4\u000e\u001d\u001d|C_3R\u0017\u001d|jU9B\u0017\u0018\u0000}@\u001a5H\u001a\u0002}DT$\u0006\u0017\u001c2NV1U\rR"
         .length();
      char var1 = 4;
      int var7 = -1;

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

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

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

                  var2 = "&>C~$\u000bv$<Czj\u001a8)\"\fph\u000fk3l0`;Dvv\u000b8%\"Hck\u0007v4bO|j\u0000}#8E|j)w)(\f.$T{/\"Bvg\u001aq/\"k|m\n";
                  var4 = "&>C~$\u000bv$<Czj\u001a8)\"\fph\u000fk3l0`;Dvv\u000b8%\"Hck\u0007v4bO|j\u0000}#8E|j)w)(\f.$T{/\"Bvg\u001aq/\"k|m\n".length();
                  var1 = 23;
                  var7 = -1;
            }

            var10000 = 80;
            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] ^ 72);
      }

      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 -> 16;
            case 1 -> 28;
            case 2 -> 124;
            case 3 -> 67;
            case 4 -> 84;
            case 5 -> 62;
            default -> 72;
         });
      }

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