package com.l7tech.external.assertions.gatewaygraphql.server.resolver.helper;

import com.l7tech.external.assertions.gatewaygraphql.server.data.ActiveConnectorDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityProperty;
import com.l7tech.external.assertions.gatewaygraphql.server.input.EntityPropertyInput;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.EntityResolver;
import com.l7tech.external.assertions.gatewaygraphql.server.util.Util;
import com.l7tech.gateway.common.transport.SsgActiveConnector;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.security.password.SecurePasswordManager;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;

public class KafkaActiveConnectorHelper implements ActiveConnectorHelper {
   public static final String KAFKA_PASSWORD_GOID;
   public static final String SECURE_PASSWORD_NAME;
   public static final String KAFKA_PREFIX;
   public static final String KAFKA_PRODUCER_ADV_PROPERTY_PREFIX;
   public static final String KAFKA_CONSUMER_ADV_PROPERTY_PREFIX;
   public static final String PRODUCER_PREFIX;
   public static final String CONSUMER_PREFIX;
   public static final String KAFKA_ROLE;
   public static final String DEFAULT_KAFKA_ROLE;
   private final SecurePasswordManager a;
   private static final String[] b;

   public KafkaActiveConnectorHelper(SecurePasswordManager var1) {
      this.a = var1;
   }

   @Override
   public void setProperties(ActiveConnectorDTO.ActiveConnectorInput var1, SsgActiveConnector var2) {
      this.a(var1.getProperties(), var2);
   }

   @Override
   public void setPartialProperties(ActiveConnectorDTO.ActiveConnectorInput var1, SsgActiveConnector var2) {
      this.a(var1.getPartialProperties(), var2);
   }

   @Override
   public List<EntityProperty> getProperties(SsgActiveConnector var1) {
      return var1.getPropertyNames()
         .stream()
         .filter(var0 -> var0.startsWith(b[1]))
         .filter(var0 -> !var0.startsWith(b[17]))
         .filter(var0 -> !var0.startsWith(b[0]))
         .map(var2 -> {
            String[] var3 = b;
            return var2.equals(var3[9]) ? this.a(var1) : new EntityProperty(var2.substring(b[7].length()), var1.getProperty(var2));
         })
         .filter(Objects::nonNull)
         .collect(Collectors.toList());
   }

   private void a(SsgActiveConnector var1, EntityPropertyInput var2) {
      if (StringUtils.isNotEmpty(var2.getValue())) {
         Goid var3 = EntityResolver.toEntityGoidByName(this.a, var2.getValue());
         var1.setProperty(b[9], Goid.toString(var3));
      }
   }

   private EntityProperty a(SsgActiveConnector var1) {
      String[] var4 = b;
      String var2 = var1.getProperty(var4[18]);
      if (StringUtils.isEmpty(var2)) {
         return null;
      }

      String var3 = EntityResolver.toEntityNameByGoid(this.a, Goid.parseGoid(var2));
      return new EntityProperty(b[16], var3);
   }

   @Override
   public void setAdvancedProperties(ActiveConnectorDTO.ActiveConnectorInput var1, SsgActiveConnector var2) {
      this.b(var1.getAdvancedProperties(), var2);
   }

   @Override
   public void setAdvancedPartialProperties(ActiveConnectorDTO.ActiveConnectorInput var1, SsgActiveConnector var2) {
      this.b(var1.getPartialAdvancedProperties(), var2);
   }

   @Override
   public List<EntityProperty> getAdvancedProperties(SsgActiveConnector var1) {
      return var1.getPropertyNames().stream().map(var2 -> {
         String var3 = this.b(var1, var2);
         return var3 != null ? new EntityProperty(var3, var1.getProperty(var2)) : null;
      }).filter(Objects::nonNull).collect(Collectors.toList());
   }

   private boolean b(SsgActiveConnector var1) {
      String[] var2 = b;
      return var1.getBooleanProperty(var2[15]) || var2[19].equals(var1.getProperty(var2[11], var2[19]));
   }

   private boolean c(SsgActiveConnector var1) {
      return var1.getBooleanProperty(b[6]);
   }

   private String a(SsgActiveConnector var1, String var2) {
      String[] var3 = b;
      if (var2.startsWith(var3[10])) {
         return var3[8] + var2.substring(var3[5].length());
      } else {
         var3 = b;
         if (var2.startsWith(var3[4])) {
            return var3[3] + var2.substring(var3[14].length());
         } else if (this.b(var1)) {
            var3 = b;
            return var3[17] + var2;
         } else {
            return this.c(var1) ? b[0] + var2 : var2;
         }
      }
   }

   private String b(SsgActiveConnector var1, String var2) {
      String[] var3 = b;
      if (var2.startsWith(var3[17])) {
         String var10000 = this.c(var1) ? var3[5] : "";
         var3 = b;
         return var10000 + var2.substring(var3[17].length());
      } else {
         var3 = b;
         return var2.startsWith(var3[0]) ? (this.b(var1) ? var3[14] : "") + var2.substring(b[0].length()) : null;
      }
   }

   private void a(List<EntityPropertyInput> var1, SsgActiveConnector var2) {
      if (var1 != null) {
         var1.forEach(var2x -> {
            String var10000 = var2x.getName();
            String[] var3x = b;
            if (var10000.equals(var3x[2])) {
               this.a(var2, var2x);
            } else {
               var2.setProperty(b[7] + var2x.getName(), var2x.getValue());
            }
         });
      }

      String[] var3 = b;
      if (Util.isEmpty(var2.getProperty(var3[13]))) {
         var2.setProperty(var3[11], var3[12]);
      }
   }

   private void b(List<EntityPropertyInput> var1, SsgActiveConnector var2) {
      var1.forEach(var2x -> var2.setProperty(this.a(var2, var2x.getName()), var2x.getValue()));
   }

   static {
      String[] var5 = new String[20];
      int var3 = 0;
      String var2 = "\u000b$==\u001d\u0014\u0006\u000f+(#\u0011_\u0017N$? \u001dT\u0006\u0005!u\u0006\u000b$==\u001d\u0014\u0012\u0013 8#\u000e_5\u00016(!\u0013H\u0001.$63\u0018\u000b$==\u001d\u0014\u0006\u000f+(#\u0011_\u0017N$? \u001dT\u0006\u0005!u\t\u0003*5%\tW\u0000\u0012k\t\u0010742\tY\u0000\u0012k\u0013\u000b$==\u001d\u0014\u0006\u000f+(#\u0011_\u0017N74:\u0019\u0006\u000b$==\u001d\u0014\u0018\u000b$==\u001d\u0014\u0015\u0012*?#\u001f_\u0017N$? \u001dT\u0006\u0005!u\u0012\u000b$==\u001d\u0014\u0015\u00016(!\u0013H\u0001'*22\t\u0010742\tY\u0000\u0012k\n\u000b$==\u001d\u0014\u0017\u000f)>\b\u0010742\tY\u0000\u0012\n\u000b$==\u001d\u0014\u0017\u000f)>\t\u0003*5%\tW\u0000\u0012k\u0013\u000b$==\u001d\u0014\u0015\u0012*?#\u001f_\u0017N74:\u0019\u0012\u0013 8#\u000e_5\u00016(!\u0013H\u0001.$63\u0018\u000b$==\u001d\u0014\u0015\u0012*?#\u001f_\u0017N$? \u001dT\u0006\u0005!u";
      int var4 = "\u000b$==\u001d\u0014\u0006\u000f+(#\u0011_\u0017N$? \u001dT\u0006\u0005!u\u0006\u000b$==\u001d\u0014\u0012\u0013 8#\u000e_5\u00016(!\u0013H\u0001.$63\u0018\u000b$==\u001d\u0014\u0006\u000f+(#\u0011_\u0017N$? \u001dT\u0006\u0005!u\t\u0003*5%\tW\u0000\u0012k\t\u0010742\tY\u0000\u0012k\u0013\u000b$==\u001d\u0014\u0006\u000f+(#\u0011_\u0017N74:\u0019\u0006\u000b$==\u001d\u0014\u0018\u000b$==\u001d\u0014\u0015\u0012*?#\u001f_\u0017N$? \u001dT\u0006\u0005!u\u0012\u000b$==\u001d\u0014\u0015\u00016(!\u0013H\u0001'*22\t\u0010742\tY\u0000\u0012k\n\u000b$==\u001d\u0014\u0017\u000f)>\b\u0010742\tY\u0000\u0012\n\u000b$==\u001d\u0014\u0017\u000f)>\t\u0003*5%\tW\u0000\u0012k\u0013\u000b$==\u001d\u0014\u0015\u0012*?#\u001f_\u0017N74:\u0019\u0012\u0013 8#\u000e_5\u00016(!\u0013H\u0001.$63\u0018\u000b$==\u001d\u0014\u0015\u0012*?#\u001f_\u0017N$? \u001dT\u0006\u0005!u"
         .length();
      char var1 = 24;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 118;
         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) {
                     b = var5;
                     String[] var9 = b;
                     KAFKA_PRODUCER_ADV_PROPERTY_PREFIX = b[17];
                     KAFKA_PASSWORD_GOID = var9[9];
                     CONSUMER_PREFIX = var9[14];
                     SECURE_PASSWORD_NAME = var9[16];
                     PRODUCER_PREFIX = var9[5];
                     KAFKA_ROLE = var9[11];
                     DEFAULT_KAFKA_ROLE = var9[19];
                     KAFKA_PREFIX = var9[7];
                     KAFKA_CONSUMER_ADV_PROPERTY_PREFIX = var9[0];
                     return;
                  }

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

                  var2 = "vY@@`ih|KU\\n5|ZWOO\bmJIOt$}o";
                  var4 = "vY@@`ih|KU\\n5|ZWOO\bmJIOt$}o".length();
                  var1 = 18;
                  var7 = -1;
            }

            var10000 = 11;
            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] ^ 19);
      }

      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 -> 22;
            case 1 -> 51;
            case 2 -> 45;
            case 3 -> 32;
            case 4 -> 10;
            case 5 -> 76;
            default -> 19;
         });
      }

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