package com.l7tech.server.search.processors;

import com.l7tech.gateway.common.log.SinkConfiguration;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SsgKeyHeader;
import com.l7tech.server.EntityCrud;
import com.l7tech.server.search.exceptions.CannotReplaceDependenciesException;
import com.l7tech.server.search.exceptions.CannotRetrieveDependenciesException;
import com.l7tech.server.search.objects.Dependency;
import com.l7tech.util.Functions.BinaryThrows;
import com.l7tech.util.Functions.TernaryThrows;
import jakarta.inject.Inject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.NotNull;

public class LogSinkDependencyProcessor extends DefaultDependencyProcessor<SinkConfiguration> implements DependencyProcessor<SinkConfiguration> {
   @Inject
   private EntityCrud entityCrud;
   private static final String[] a;

   @NotNull
   public List<Dependency> findDependencies(@NotNull SinkConfiguration var1, @NotNull DependencyFinder var2) throws FindException, CannotRetrieveDependenciesException {
      try {
         if (var1 == null) {
            b(0);
         }
      } catch (FindException var9) {
         throw a(var9);
      }

      try {
         if (var2 == null) {
            b(1);
         }
      } catch (FindException var11) {
         throw a(var11);
      }

      List var3 = super.findDependencies(var1, var2);
      ad var4 = new ad(this);

      label56: {
         try {
            var3.addAll(this.a(var1, var2, a[4], EntityType.SERVICE, var4));
            var3.addAll(this.a(var1, var2, a[3], EntityType.SSG_CONNECTOR, var4));
            var3.addAll(this.a(var1, var2, a[24], EntityType.EMAIL_LISTENER, var4));
            var3.addAll(this.a(var1, var2, a[14], EntityType.JMS_ENDPOINT, var4));
            var3.addAll(this.a(var1, var2, a[8], EntityType.POLICY, var4));
            var3.addAll(this.a(var1, var2, a[23], EntityType.FOLDER, var4));
            var3.addAll(this.a(var1, var2, a[9], EntityType.USER, new ae(this)));
            if (var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEYSTORE_ID) == null
               || var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEY_ALIAS) == null) {
               break label56;
            }
         } catch (FindException var10) {
            throw a(var10);
         }

         Entity var5 = this.entityCrud
            .find(
               new SsgKeyHeader(
                  null,
                  Goid.parseGoid(var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEYSTORE_ID)),
                  var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEY_ALIAS),
                  ""
               )
            );
         Dependency var6 = var2.a(DependencyFinder.FindResults.create(var5, null));

         try {
            if (var6 != null) {
               var3.add(var6);
            }
         } catch (FindException var8) {
            throw a(var8);
         }
      }

      try {
         if (var3 == null) {
            b(2);
         }

         return var3;
      } catch (FindException var7) {
         throw a(var7);
      }
   }

   private List<Dependency> a(
      @NotNull SinkConfiguration var1,
      @NotNull DependencyFinder var2,
      String var3,
      EntityType var4,
      BinaryThrows<EntityHeader, String, EntityType, CannotRetrieveDependenciesException> var5
   ) throws FindException, CannotRetrieveDependenciesException {
      try {
         if (var1 == null) {
            b(3);
         }
      } catch (FindException var13) {
         throw a(var13);
      }

      try {
         if (var2 == null) {
            b(4);
         }
      } catch (FindException var12) {
         throw a(var12);
      }

      ArrayList var6 = new ArrayList();
      if (var1.getFilters().containsKey(var3)) {
         for (String var8 : (List)var1.getFilters().get(var3)) {
            Entity var9 = this.entityCrud.find((EntityHeader)var5.call(var8, var4));
            Dependency var10 = var2.a(DependencyFinder.FindResults.create(var9, null));

            try {
               if (var10 != null) {
                  var6.add(var10);
               }
            } catch (FindException var11) {
               throw a(var11);
            }
         }
      }

      return var6;
   }

   public void replaceDependencies(@NotNull SinkConfiguration var1, @NotNull Map<EntityHeader, EntityHeader> var2, @NotNull DependencyFinder var3, boolean var4) throws CannotReplaceDependenciesException {
      try {
         if (var1 == null) {
            b(5);
         }
      } catch (CannotReplaceDependenciesException var13) {
         throw a(var13);
      }

      try {
         if (var2 == null) {
            b(6);
         }
      } catch (CannotReplaceDependenciesException var10) {
         throw a(var10);
      }

      try {
         if (var3 == null) {
            b(7);
         }
      } catch (CannotReplaceDependenciesException var12) {
         throw a(var12);
      }

      super.replaceDependencies(var1, var2, var3, var4);
      af var5 = new af(this);
      HashMap var6 = new HashMap(var1.getFilters());

      try {
         this.a(var6, var2, a[1], EntityType.SERVICE, var5);
         this.a(var6, var2, a[12], EntityType.SSG_CONNECTOR, var5);
         this.a(var6, var2, a[0], EntityType.EMAIL_LISTENER, var5);
         this.a(var6, var2, a[7], EntityType.JMS_ENDPOINT, var5);
         this.a(var6, var2, a[22], EntityType.POLICY, var5);
         this.a(var6, var2, a[6], EntityType.FOLDER, var5);
         this.a(var6, var2, a[20], EntityType.USER, new ag(this));
         var1.setFilters(var6);
         if (var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEYSTORE_ID) == null || var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEY_ALIAS) == null) {
            return;
         }
      } catch (CannotReplaceDependenciesException var11) {
         throw a(var11);
      }

      String var7 = var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEYSTORE_ID) + ":" + var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEY_ALIAS);
      EntityHeader var8 = new EntityHeader(var7, EntityType.SSG_KEY_ENTRY, null, null);
      if (var2.containsKey(var8)) {
         SsgKeyHeader var9 = (SsgKeyHeader)var2.get(var8);
         var1.setProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEYSTORE_ID, var9.getKeystoreId().toString());
         var1.setProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEY_ALIAS, var9.getAlias());
      }
   }

   private void a(
      Map<String, List<String>> var1,
      @NotNull Map<EntityHeader, EntityHeader> var2,
      String var3,
      EntityType var4,
      TernaryThrows<String, String, EntityType, Map<EntityHeader, EntityHeader>, CannotReplaceDependenciesException> var5
   ) throws CannotReplaceDependenciesException {
      try {
         if (var2 == null) {
            b(8);
         }
      } catch (CannotReplaceDependenciesException var10) {
         throw a(var10);
      }

      if (var1.containsKey(var3)) {
         List var6 = (List)var1.get(var3);
         ArrayList var7 = new ArrayList();

         for (String var9 : var6) {
            var7.add((String)var5.call(var9, var4, var2));
         }

         var1.put(var3, var7);
      }
   }

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

   static {
      String[] var5 = new String[25];
      int var3 = 0;
      String var2 = "v\rG`\u001e>?z\u0013Rl\u001cv!>\tB\n`\u0005T\u007f\u001bp6>\tB\u000ft\u0005RM\u0017c6}\u0004Cg\u0011z6`\u000e\u007f\tU}\u0017}~c\u000fT}_z7\n`\u0005T\u007f\u001bp6>\tB\u0013a\u0005Ve\u0013p6W\u0005Vl\u001cw6}\u0003Ol\u0001\tu\u000fJm\u0017a~z\u0004\u000fy\rU$\u001ez g\u0005Hl\u0000>:w\tc\u000fJ`\u0011j~z\u0004\u0007f\u0013C{_z7\u0006u\tHm\u0017a*S.I}<f?\u007f@Kl\u0006{<w@\u0003z\\6 3\rSz\u00063=|\u0014\u0006{\u0017g&a\u000e\u0006g\u0007\u007f?\u000e\u007f\tU}\u0017}~c\u000fT}_z7\u0010u\tHm6v#v\u000eBl\u001cp:v\u0013\u000fy\rU$\u001ez g\u0005Hl\u0000>:w>p\u000fK&\u001e$'v\u0003N&\u0001v!e\u0005T&\u0001v2a\u0003N&\u0002a<p\u0005Uz\u001da <,In!z=x$Cy\u0017}7v\u000eEp\"a<p\u0005Uz\u001da>R\u0012A|\u001fv=g@@f\u00003\u0013]\u000fRG\u0007\u007f?3\u0010G{\u0013~6g\u0005T)U6 4@IoR6 =EU)\u001ff g@Hf\u000631v@H|\u001e\u007f\u0011`\tHb1|=u\tA|\u0000r'z\u000fH>p\u000fK&\u001e$'v\u0003N&\u0001v!e\u0005T&\u0001v2a\u0003N&\u0002a<p\u0005Uz\u001da <,In!z=x$Cy\u0017}7v\u000eEp\"a<p\u0005Uz\u001da\u0010u\tHm6v#v\u000eBl\u001cp:v\u0013\u0007f\u0013C{_z7\u000ea\u0005Ve\u0013p6~\u0005H}?r#\tc\u000fJ`\u0011j~z\u0004";
      int var4 = "v\rG`\u001e>?z\u0013Rl\u001cv!>\tB\n`\u0005T\u007f\u001bp6>\tB\u000ft\u0005RM\u0017c6}\u0004Cg\u0011z6`\u000e\u007f\tU}\u0017}~c\u000fT}_z7\n`\u0005T\u007f\u001bp6>\tB\u0013a\u0005Ve\u0013p6W\u0005Vl\u001cw6}\u0003Ol\u0001\tu\u000fJm\u0017a~z\u0004\u000fy\rU$\u001ez g\u0005Hl\u0000>:w\tc\u000fJ`\u0011j~z\u0004\u0007f\u0013C{_z7\u0006u\tHm\u0017a*S.I}<f?\u007f@Kl\u0006{<w@\u0003z\\6 3\rSz\u00063=|\u0014\u0006{\u0017g&a\u000e\u0006g\u0007\u007f?\u000e\u007f\tU}\u0017}~c\u000fT}_z7\u0010u\tHm6v#v\u000eBl\u001cp:v\u0013\u000fy\rU$\u001ez g\u0005Hl\u0000>:w>p\u000fK&\u001e$'v\u0003N&\u0001v!e\u0005T&\u0001v2a\u0003N&\u0002a<p\u0005Uz\u001da <,In!z=x$Cy\u0017}7v\u000eEp\"a<p\u0005Uz\u001da>R\u0012A|\u001fv=g@@f\u00003\u0013]\u000fRG\u0007\u007f?3\u0010G{\u0013~6g\u0005T)U6 4@IoR6 =EU)\u001ff g@Hf\u000631v@H|\u001e\u007f\u0011`\tHb1|=u\tA|\u0000r'z\u000fH>p\u000fK&\u001e$'v\u0003N&\u0001v!e\u0005T&\u0001v2a\u0003N&\u0002a<p\u0005Uz\u001da <,In!z=x$Cy\u0017}7v\u000eEp\"a<p\u0005Uz\u001da\u0010u\tHm6v#v\u000eBl\u001cp:v\u0013\u0007f\u0013C{_z7\u000ea\u0005Ve\u0013p6~\u0005H}?r#\tc\u000fJ`\u0011j~z\u0004"
         .length();
      char var1 = 17;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 7;
         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) {
                     a = var5;
                     return;
                  }

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

                  var2 = "B8}Z VIM3\u0011A:pW)\t\bM$e[+A\u0016\t>u";
                  var4 = "B8}Z VIM3\u0011A:pW)\t\bM$e[+A\u0016\t>u".length();
                  var1 = '\t';
                  var7 = -1;
            }

            var10000 = 48;
            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] ^ 84);
      }

      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 -> 20;
            case 1 -> 103;
            case 2 -> 33;
            case 3 -> 14;
            case 4 -> 117;
            case 5 -> 20;
            default -> 84;
         });
      }

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