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

import com.fasterxml.jackson.annotation.JsonIncludeProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.l7tech.external.assertions.gatewaygraphql.server.input.EntityPropertyInput;
import com.l7tech.external.assertions.gatewaygraphql.server.input.IdpEntityInput;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.query.IdpResolverHelper;
import com.l7tech.identity.ldap.BindOnlyLdapIdentityProviderConfig;
import com.l7tech.server.identity.ldap.BindOnlyLdapIdentityProvider;
import java.util.Arrays;
import java.util.List;
import lombok.Generated;

public class SimpleLdapIdpDTO extends IdpDTO<BindOnlyLdapIdentityProviderConfig, BindOnlyLdapIdentityProvider> {
   public static final String RECONNECT_TIMEOUT;
   private static final String[] a;

   public SimpleLdapIdpDTO(BindOnlyLdapIdentityProviderConfig var1, IdpResolverHelper var2) {
      super(var1, null, var2);
   }

   public List<String> getServerUrls() {
      return Arrays.asList(this.idpConfig.getLdapUrl());
   }

   public boolean isUseSslClientAuth() {
      return this.idpConfig.isClientAuthEnabled();
   }

   public String getSslClientKeyAlias() {
      return this.idpConfig.getKeyAlias() != null && this.idpConfig.getKeystoreId() != null
         ? this.idpConfig.getKeystoreId() + ":" + this.idpConfig.getKeyAlias()
         : this.idpConfig.getKeyAlias();
   }

   public String getBindDnPatternPrefix() {
      return this.idpConfig.getBindPatternPrefix();
   }

   public List<EntityProperty> getProperties() {
      return this.idpConfig.getReconnectTimeout() != null ? List.of(new EntityProperty(a[1], this.idpConfig.getReconnectTimeout().toString())) : null;
   }

   public String getBindDnPatternSuffix() {
      return this.idpConfig.getBindPatternSuffix();
   }

   @Override
   public Object createWrapperObject() {
      return new SimpleLdapIdpDTO.SimpleLdapIdpWrapper(this.idpConfig, this.idpHelper);
   }

   static {
      String[] var5 = new String[2];
      int var3 = 0;
      String var2 = "lR>D\u0011sp}C\tB\u0012xzkC\u0010lR>D\u0011sp}C\tB\u0012xzkC";
      int var4 = "lR>D\u0011sp}C\tB\u0012xzkC\u0010lR>D\u0011sp}C\tB\u0012xzkC".length();
      char var1 = 16;
      int var0 = -1;

      while (true) {
         String var10002 = a(70, a(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            a = var5;
            RECONNECT_TIMEOUT = a[0];
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

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

      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 -> 88;
            case 1 -> 113;
            case 2 -> 27;
            case 3 -> 109;
            case 4 -> 57;
            case 5 -> 91;
            default -> 83;
         });
      }

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

   public static class SimpleLdapIdpInput extends IdpEntityInput {
      String f;
      List<String> g;
      Boolean h;
      String i;
      String j;
      String k;
      String l;
      List<EntityPropertyInput> m;
      private static final String[] n;

      @Generated
      @Override
      public String getName() {
         return this.f;
      }

      @Generated
      public List<String> getServerUrls() {
         return this.g;
      }

      @Generated
      public Boolean getUseSslClientAuth() {
         return this.h;
      }

      @Generated
      public String getSslClientKeyAlias() {
         return this.i;
      }

      @Generated
      public String getBindDnPatternPrefix() {
         return this.j;
      }

      @Generated
      public String getBindDnPatternSuffix() {
         return this.k;
      }

      @Generated
      public String getChecksum() {
         return this.l;
      }

      @Generated
      public List<EntityPropertyInput> getProperties() {
         return this.m;
      }

      @Generated
      public void setName(String var1) {
         this.f = var1;
      }

      @Generated
      public void setServerUrls(List<String> var1) {
         this.g = var1;
      }

      @Generated
      public void setUseSslClientAuth(Boolean var1) {
         this.h = var1;
      }

      @Generated
      public void setSslClientKeyAlias(String var1) {
         this.i = var1;
      }

      @Generated
      public void setBindDnPatternPrefix(String var1) {
         this.j = var1;
      }

      @Generated
      public void setBindDnPatternSuffix(String var1) {
         this.k = var1;
      }

      @Generated
      public void setChecksum(String var1) {
         this.l = var1;
      }

      @Generated
      public void setProperties(List<EntityPropertyInput> var1) {
         this.m = var1;
      }

      @Generated
      @Override
      public String toString() {
         String var10000 = this.getName();
         String var10001 = String.valueOf(this.getServerUrls());
         Boolean var10002 = this.getUseSslClientAuth();
         String var10003 = this.getSslClientKeyAlias();
         String var10004 = this.getBindDnPatternPrefix();
         String var10005 = this.getBindDnPatternSuffix();
         String var1 = String.valueOf(this.getProperties());
         String var2 = this.getChecksum();
         String var3 = var10005;
         String var4 = var10004;
         String var5 = var10003;
         Boolean var6 = var10002;
         String var7 = var10001;
         String var8 = var10000;
         String[] var9 = n;
         return var9[0] + var8 + var9[3] + var7 + var9[1] + var6 + var9[4] + var5 + var9[7] + var4 + var9[5] + var3 + var9[6] + var2 + var9[2] + var1 + ")";
      }

      @Generated
      @Override
      public boolean equals(Object var1) {
         if (var1 == this) {
            return true;
         } else if (!(var1 instanceof SimpleLdapIdpDTO.SimpleLdapIdpInput var2)) {
            return false;
         } else {
            if (!var2.canEqual(this)) {
               return false;
            }

            if (!super.equals(var1)) {
               return false;
            }

            Boolean var3 = this.getUseSslClientAuth();
            Boolean var4 = var2.getUseSslClientAuth();
            if (var3 == null ? var4 == null : var3.equals(var4)) {
               String var5 = this.getName();
               String var6 = var2.getName();
               if (var5 == null ? var6 == null : var5.equals(var6)) {
                  List var7 = this.getServerUrls();
                  List var8 = var2.getServerUrls();
                  if (var7 == null ? var8 == null : var7.equals(var8)) {
                     String var9 = this.getSslClientKeyAlias();
                     String var10 = var2.getSslClientKeyAlias();
                     if (var9 == null ? var10 == null : var9.equals(var10)) {
                        String var11 = this.getBindDnPatternPrefix();
                        String var12 = var2.getBindDnPatternPrefix();
                        if (var11 == null ? var12 == null : var11.equals(var12)) {
                           String var13 = this.getBindDnPatternSuffix();
                           String var14 = var2.getBindDnPatternSuffix();
                           if (var13 == null ? var14 == null : var13.equals(var14)) {
                              String var15 = this.getChecksum();
                              String var16 = var2.getChecksum();
                              if (var15 == null ? var16 == null : var15.equals(var16)) {
                                 List var17 = this.getProperties();
                                 List var18 = var2.getProperties();
                                 return var17 == null ? var18 == null : var17.equals(var18);
                              } else {
                                 return false;
                              }
                           } else {
                              return false;
                           }
                        } else {
                           return false;
                        }
                     } else {
                        return false;
                     }
                  } else {
                     return false;
                  }
               } else {
                  return false;
               }
            } else {
               return false;
            }
         }
      }

      @Generated
      @Override
      protected boolean canEqual(Object var1) {
         return var1 instanceof SimpleLdapIdpDTO.SimpleLdapIdpInput;
      }

      @Generated
      @Override
      public int hashCode() {
         byte var1 = 59;
         int var2 = super.hashCode();
         Boolean var3 = this.getUseSslClientAuth();
         var2 = var2 * 59 + (var3 == null ? 43 : var3.hashCode());
         String var4 = this.getName();
         var2 = var2 * 59 + (var4 == null ? 43 : var4.hashCode());
         List var5 = this.getServerUrls();
         var2 = var2 * 59 + (var5 == null ? 43 : var5.hashCode());
         String var6 = this.getSslClientKeyAlias();
         var2 = var2 * 59 + (var6 == null ? 43 : var6.hashCode());
         String var7 = this.getBindDnPatternPrefix();
         var2 = var2 * 59 + (var7 == null ? 43 : var7.hashCode());
         String var8 = this.getBindDnPatternSuffix();
         var2 = var2 * 59 + (var8 == null ? 43 : var8.hashCode());
         String var9 = this.getChecksum();
         var2 = var2 * 59 + (var9 == null ? 43 : var9.hashCode());
         List var10 = this.getProperties();
         return var2 * 59 + (var10 == null ? 43 : var10.hashCode());
      }

      static {
         String[] var5 = new String[8];
         int var3 = 0;
         String var2 = "wr\"V)lX@z?o!yPpTau,ddH~\u0003B$y]@k\u0006H5|`\fu.K 4\u0013\b;:U ZgHX#O g`en;Nx\r\b;?T*yqVo&C64\r\b;<C7\u007fqVN=J64\u0014\b;<U)JxM~!R\u000elmew&G64\u0016\b;-O+mPJK.R1lfJH:@#`l\u0019";
         int var4 = "wr\"V)lX@z?o!yPpTau,ddH~\u0003B$y]@k\u0006H5|`\fu.K 4\u0013\b;:U ZgHX#O g`en;Nx\r\b;?T*yqVo&C64\r\b;<C7\u007fqVN=J64\u0014\b;<U)JxM~!R\u000elmew&G64\u0016\b;-O+mPJK.R1lfJH:@#`l\u0019"
            .length();
         char var1 = ')';
         int var7 = -1;

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

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

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

                     var2 = "\r>)K%ozRk'\u001e\u0016\r>(J.hUON+W4icON8F&ei\u001c";
                     var4 = "\r>)K%ozRk'\u001e\u0016\r>(J.hUON+W4icON8F&ei\u001c".length();
                     var1 = 11;
                     var7 = -1;
               }

               var10000 = 42;
               var10001 = var2.substring(++var7, var7 + var1);
               var10002 = 0;
            }
         }
      }

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

         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 -> 11;
               case 1 -> 52;
               case 2 -> 96;
               case 3 -> 9;
               case 4 -> 106;
               case 5 -> 38;
               default -> 59;
            });
         }

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

   @JsonIncludeProperties({"name", "serverUrls", "useSslClientAuth", "sslClientKeyAlias", "bindDnPatternPrefix", "bindDnPatternSuffix", "properties"})
   @JsonPropertyOrder({"name", "serverUrls", "useSslClientAuth", "sslClientKeyAlias", "bindDnPatternPrefix", "bindDnPatternSuffix", "properties"})
   public static class SimpleLdapIdpWrapper extends SimpleLdapIdpDTO {
      public SimpleLdapIdpWrapper(BindOnlyLdapIdentityProviderConfig var1, IdpResolverHelper var2) {
         super(var1, var2);
      }

      @Override
      public Object createWrapperObject() {
         return null;
      }
   }

   public static class SimpleLdapIdpsPayload extends IdpEntityMutationsPayload<BindOnlyLdapIdentityProvider, SimpleLdapIdpDTO> {
      public List<SimpleLdapIdpDTO> getSimpleLdapIdps() {
         return this.getItems();
      }
   }
}
