package com.l7tech.external.assertions.gatewaygraphql.server.data;

import com.l7tech.gateway.common.transport.jms.JmsAcknowledgementType;
import com.l7tech.gateway.common.transport.jms.JmsConnection;
import com.l7tech.gateway.common.transport.jms.JmsEndpoint;
import com.l7tech.gateway.common.transport.jms.JmsReplyType;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.function.BiFunction;
import org.apache.commons.lang3.StringUtils;

public class JmsInboundOptionsHelper {
   public static final String FREEFORM_CONTENT_TYPE_SOURCE;
   public static final String HEADER_CONTENT_TYPE_SOURCE;
   public static final String ACKNOWLEDGMENT_TYPE;
   public static final String REPLY_TYPE;
   public static final String REPLY_TO;
   public static final String USE_MESSAGE_ID_FOR_CORRELATION;
   public static final String HARDWIRED_SERVICE;
   public static final String HARDWIRED_SERVICE_NAME;
   public static final String SOAP_ACTION_MESSAGE_PROPERTY;
   public static final String CONTENT_TYPE_SOURCE;
   public static final String CONTENT_TYPE_VALUE_OR_PROPERTY;
   public static final String DEDICATED_CONSUMER_SIZE;
   public static final String REQUEST_MAX_SIZE;
   public static final String FAILURE_DESTINATION;
   private static final int a = 1;
   public static final Set<String> SUPPORTED_OPTIONS;
   private static final String[] b;

   private JmsInboundOptionsHelper() {
   }

   public static Map<String, String> getOptionsFrom(JmsEndpoint var0, Properties var1, BiFunction<String, String, String> var2) {
      HashMap var3 = new HashMap();
      String[] var7 = b;
      var3.put(var7[4], var0.getAcknowledgementType() != null ? var0.getAcknowledgementType().name() : JmsAcknowledgementType.AUTOMATIC.name());
      var7 = b;
      var3.put(var7[5], var0.getReplyType() != null ? var0.getReplyType().name() : JmsReplyType.AUTOMATIC.name());
      var7 = b;
      var3.put(var7[11], var0.getReplyToQueueName());
      var3.put(var7[6], String.valueOf(var0.isUseMessageIdForCorrelation()));
      if (Boolean.parseBoolean(var1.getProperty(JmsConnection.PROP_IS_HARDWIRED_SERVICE))) {
         var3.put(var7[17], (String)var2.apply(var7[2], var1.getProperty(JmsConnection.PROP_HARDWIRED_SERVICE_ID)));
      }

      String var4 = var1.getProperty(JmsConnection.JMS_MSG_PROP_WITH_SOAPACTION);
      if (var4 != null) {
         var7 = b;
         var3.put(var7[23], var4);
      }

      String var5 = getContentTypeSource(var1);
      if (var5 != null) {
         var7 = b;
         var3.put(var7[3], var5);
         var3.put(var7[20], var1.getProperty(JmsConnection.PROP_CONTENT_TYPE_VAL));
      }

      boolean var6 = Boolean.parseBoolean(var1.getProperty(JmsConnection.PROP_IS_DEDICATED_CONSUMER));
      if (var6) {
         var7 = b;
         var3.put(var7[15], var1.getProperty(JmsConnection.PROP_DEDICATED_CONSUMER_SIZE));
      }

      var7 = b;
      var3.put(var7[27], String.valueOf(var0.getRequestMaxSize()));
      if (var0.getFailureDestinationName() != null) {
         var3.put(var7[9], var0.getFailureDestinationName());
      }

      return var3;
   }

   public static String getContentTypeSource(Properties var0) {
      String var1 = var0.getProperty(JmsConnection.PROP_CONTENT_TYPE_SOURCE);
      if (JmsConnection.CONTENT_TYPE_SOURCE_FREEFORM.equals(var1)) {
         String[] var2 = b;
         return var2[12];
      } else {
         return JmsConnection.CONTENT_TYPE_SOURCE_HEADER.equals(var1) ? b[24] : null;
      }
   }

   public static String toJmsContentTypeSource(String var0) {
      String[] var1 = b;
      if (var1[12].equals(var0)) {
         return JmsConnection.CONTENT_TYPE_SOURCE_FREEFORM;
      } else {
         return b[21].equals(var0) ? JmsConnection.CONTENT_TYPE_SOURCE_HEADER : null;
      }
   }

   public static void setOptionsTo(JmsEndpoint var0, Properties var1, Map<String, String> var2, BiFunction<String, String, String> var3) {
      String[] var15 = b;
      String var4 = (String)var2.get(var15[14]);
      if (StringUtils.isNotEmpty(var4)) {
         var0.setAcknowledgementType(JmsAcknowledgementType.valueOf(var4));
      }

      var15 = b;
      String var5 = (String)var2.get(var15[13]);
      if (StringUtils.isNotEmpty(var5)) {
         var0.setReplyType(JmsReplyType.valueOf(var5));
      }

      var15 = b;
      String var6 = (String)var2.get(var15[0]);
      if (StringUtils.isNotEmpty(var6)) {
         var0.setReplyToQueueName(var6);
      }

      var15 = b;
      String var7 = (String)var2.get(var15[10]);
      if (StringUtils.isNotEmpty(var7)) {
         var0.setUseMessageIdForCorrelation(Boolean.parseBoolean(var7));
      }

      var15 = b;
      String var8 = (String)var2.get(var15[2]);
      if (StringUtils.isNotEmpty(var8)) {
         var1.setProperty(JmsConnection.PROP_IS_HARDWIRED_SERVICE, Boolean.TRUE.toString());
         var1.setProperty(JmsConnection.PROP_HARDWIRED_SERVICE_ID, (String)var3.apply(var15[2], var8));
      } else {
         var15 = b;
         String var9 = (String)var2.get(var15[7]);
         if (StringUtils.isNotEmpty(var9)) {
            var1.setProperty(JmsConnection.PROP_IS_HARDWIRED_SERVICE, Boolean.TRUE.toString());
            var1.setProperty(JmsConnection.PROP_HARDWIRED_SERVICE_ID, (String)var3.apply(var15[18], var9));
         }
      }

      var15 = b;
      String var16 = (String)var2.get(var15[22]);
      if (StringUtils.isNotEmpty(var16)) {
         var1.setProperty(JmsConnection.JMS_MSG_PROP_WITH_SOAPACTION, var16);
      }

      var15 = b;
      String var10 = toJmsContentTypeSource((String)var2.get(var15[19]));
      String var11 = (String)var2.get(var15[8]);
      if (StringUtils.isNotEmpty(var10) && StringUtils.isNotEmpty(var11)) {
         var1.setProperty(JmsConnection.PROP_CONTENT_TYPE_SOURCE, var10);
         var1.setProperty(JmsConnection.PROP_CONTENT_TYPE_VAL, var11);
      }

      var15 = b;
      String var12 = (String)var2.get(var15[1]);
      if (StringUtils.isNotEmpty(var12)) {
         var1.setProperty(JmsConnection.PROP_IS_DEDICATED_CONSUMER, Boolean.TRUE.toString());
         var1.setProperty(JmsConnection.PROP_DEDICATED_CONSUMER_SIZE, var12);
      }

      var15 = b;
      String var13 = (String)var2.get(var15[25]);
      if (StringUtils.isNotEmpty(var13)) {
         var0.setRequestMaxSize(Long.parseLong(var13));
      }

      String var14 = (String)var2.get(b[28]);
      if (StringUtils.isNotEmpty(var14)) {
         var0.setFailureDestinationName(var14);
      }
   }

   public static void resetOptionsTo(JmsEndpoint var0, Properties var1) {
      var0.setAcknowledgementType(JmsAcknowledgementType.AUTOMATIC);
      var0.setReplyType(JmsReplyType.AUTOMATIC);
      var0.setReplyToQueueName("");
      var0.setUseMessageIdForCorrelation(Boolean.FALSE);
      var1.setProperty(JmsConnection.PROP_IS_HARDWIRED_SERVICE, Boolean.FALSE.toString());
      var1.setProperty(JmsConnection.PROP_HARDWIRED_SERVICE_ID, "");
      var1.setProperty(JmsConnection.JMS_MSG_PROP_WITH_SOAPACTION, "");
      String[] var2 = b;
      var1.setProperty(JmsConnection.PROP_CONTENT_TYPE_SOURCE, var2[16]);
      var1.setProperty(JmsConnection.PROP_CONTENT_TYPE_VAL, var2[26]);
      var1.setProperty(JmsConnection.PROP_IS_DEDICATED_CONSUMER, Boolean.TRUE.toString());
      var1.setProperty(JmsConnection.PROP_DEDICATED_CONSUMER_SIZE, String.valueOf(1));
      var0.setRequestMaxSize(-1L);
      var0.setFailureDestinationName(null);
   }

   static {
      String[] var5 = new String[29];
      int var3 = 0;
      String var2 = "@\u0018`\u00032;n\u0007\u0004g\u001c+,^F\u001d@\u0018`\u00032;n\u0007\u0012g\b.6k]\u0013f/(;y\\\u001bg\u001e\u0014<pL\u001c@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\"&8o\u0019@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0006e\\\u0004a\t\u001b@\u0018`\u00032;n\u0007\u0017a\u0007):}E\u0013f\u000b\"8oG\u0002V\u001570\u0011@\u0018`\u00032;n\u0007\u0004g\u001c+,^P\u0006g\"@\u0018`\u00032;n\u0007\u0003q\t\n0yZ\u0017e\t\u000e1LF\u0004A\u00035'oE\u0017v\u0005(;\u0018@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\"@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0003kE\u0003g#5\u0005xF\u0006g\u001e3,\u001a@\u0018`\u00032;n\u0007\u0010c\u0005+ xL2g\u001f3<dH\u0002k\u0003)\"@\u0018`\u00032;n\u0007\u0003q\t\n0yZ\u0017e\t\u000e1LF\u0004A\u00035'oE\u0017v\u0005(;\u000f@\u0018`\u00032;n\u0007\u0004g\u001c+,^F\bo$G)\u0001\u001aXd\u0011@\u0018`\u00032;n\u0007\u0004g\u001c+,^P\u0006g\u001b@\u0018`\u00032;n\u0007\u0017a\u0007):}E\u0013f\u000b\"8oG\u0002V\u001570\u001d@\u0018`\u00032;n\u0007\u0012g\b.6k]\u0013f/(;y\\\u001bg\u001e\u0014<pL\bo$G)\u0001\u001aXd\u001c@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\"&8o\u0018@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\u0019@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0006e\\\u0004a\t\"@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0003kE\u0003g#5\u0005xF\u0006g\u001e3,\u0006a3C(\u0002\u0007!@\u0018`\u00032;n\u0007\u0005m\r7\u0014i]\u001fm\u0002\n0yZ\u0017e\t\u0017'eY\u0013p\u0018>!@\u0018`\u00032;n\u0007\u0005m\r7\u0014i]\u001fm\u0002\n0yZ\u0017e\t\u0017'eY\u0013p\u0018>\u0006a3C(\u0002\u0007\u0016@\u0018`\u00032;n\u0007\u0004g\u001d20y];c\u0014\u0014<pL\u0010H\u0006r\u0000.6k]\u001fm\u0002h?yF\u0018";
      int var4 = "@\u0018`\u00032;n\u0007\u0004g\u001c+,^F\u001d@\u0018`\u00032;n\u0007\u0012g\b.6k]\u0013f/(;y\\\u001bg\u001e\u0014<pL\u001c@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\"&8o\u0019@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0006e\\\u0004a\t\u001b@\u0018`\u00032;n\u0007\u0017a\u0007):}E\u0013f\u000b\"8oG\u0002V\u001570\u0011@\u0018`\u00032;n\u0007\u0004g\u001c+,^P\u0006g\"@\u0018`\u00032;n\u0007\u0003q\t\n0yZ\u0017e\t\u000e1LF\u0004A\u00035'oE\u0017v\u0005(;\u0018@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\"@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0003kE\u0003g#5\u0005xF\u0006g\u001e3,\u001a@\u0018`\u00032;n\u0007\u0010c\u0005+ xL2g\u001f3<dH\u0002k\u0003)\"@\u0018`\u00032;n\u0007\u0003q\t\n0yZ\u0017e\t\u000e1LF\u0004A\u00035'oE\u0017v\u0005(;\u000f@\u0018`\u00032;n\u0007\u0004g\u001c+,^F\bo$G)\u0001\u001aXd\u0011@\u0018`\u00032;n\u0007\u0004g\u001c+,^P\u0006g\u001b@\u0018`\u00032;n\u0007\u0017a\u0007):}E\u0013f\u000b\"8oG\u0002V\u001570\u001d@\u0018`\u00032;n\u0007\u0012g\b.6k]\u0013f/(;y\\\u001bg\u001e\u0014<pL\bo$G)\u0001\u001aXd\u001c@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\"&8o\u0018@\u0018`\u00032;n\u0007\u001ec\u001e#\"c[\u0013f?\"'|@\u0015g\u0019@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0006e\\\u0004a\t\"@\u0018`\u00032;n\u0007\u0015m\u000230d]\"{\u001c\"\u0003kE\u0003g#5\u0005xF\u0006g\u001e3,\u0006a3C(\u0002\u0007!@\u0018`\u00032;n\u0007\u0005m\r7\u0014i]\u001fm\u0002\n0yZ\u0017e\t\u0017'eY\u0013p\u0018>!@\u0018`\u00032;n\u0007\u0005m\r7\u0014i]\u001fm\u0002\n0yZ\u0017e\t\u0017'eY\u0013p\u0018>\u0006a3C(\u0002\u0007\u0016@\u0018`\u00032;n\u0007\u0004g\u001d20y];c\u0014\u0014<pL\u0010H\u0006r\u0000.6k]\u001fm\u0002h?yF\u0018"
         .length();
      char var1 = 15;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     String[] var10 = b;
                     ACKNOWLEDGMENT_TYPE = b[14];
                     HARDWIRED_SERVICE = var10[18];
                     SOAP_ACTION_MESSAGE_PROPERTY = var10[22];
                     FAILURE_DESTINATION = var10[28];
                     HEADER_CONTENT_TYPE_SOURCE = var10[24];
                     HARDWIRED_SERVICE_NAME = var10[2];
                     CONTENT_TYPE_VALUE_OR_PROPERTY = var10[8];
                     REQUEST_MAX_SIZE = var10[25];
                     REPLY_TYPE = var10[13];
                     DEDICATED_CONSUMER_SIZE = var10[1];
                     FREEFORM_CONTENT_TYPE_SOURCE = var10[12];
                     REPLY_TO = var10[0];
                     USE_MESSAGE_ID_FOR_CORRELATION = var10[10];
                     CONTENT_TYPE_SOURCE = var10[19];
                     String[] var13 = new String[12];
                     String[] var8 = b;
                     var13[0] = var8[14];
                     var13[1] = var8[13];
                     var13[2] = var8[0];
                     var13[3] = var8[10];
                     var13[4] = var8[18];
                     var13[5] = var8[2];
                     var13[6] = var8[22];
                     var13[7] = var8[19];
                     var13[8] = var8[8];
                     var13[9] = var8[1];
                     var13[10] = var8[25];
                     var13[11] = var8[28];
                     SUPPORTED_OPTIONS = new HashSet<>(Arrays.asList(var13));
                     return;
                  }

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

                  var2 = "/w\u000fl]T\u0001hk\br]_\u00162T\f{{S\u001f#\u001a/w\u000fl]T\u0001h\u007f\fjDO\u0017#]\bp\\S\u000b'm\u0004lF";
                  var4 = "/w\u000fl]T\u0001hk\br]_\u00162T\f{{S\u001f#\u001a/w\u000fl]T\u0001h\u007f\fjDO\u0017#]\bp\\S\u000b'm\u0004lF".length();
                  var1 = 22;
                  var7 = -1;
            }

            var10000 = 17;
            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] ^ 116);
      }

      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 -> 87;
            case 1 -> 8;
            case 2 -> 124;
            case 3 -> 18;
            case 4 -> 57;
            case 5 -> 43;
            default -> 116;
         });
      }

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