package com.l7tech.server.transport;

import com.l7tech.gateway.common.Component;
import com.l7tech.gateway.common.LicenseManager;
import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.SystemMessages;
import com.l7tech.gateway.common.transport.SsgActiveConnector;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.LifecycleBean;
import com.l7tech.server.audit.Auditor;
import com.l7tech.server.event.EntityInvalidationEvent;
import com.l7tech.util.ExceptionUtils;
import jakarta.inject.Inject;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.context.ApplicationEvent;

public abstract class ActiveTransportModule extends LifecycleBean {
   protected final Logger logger;
   protected final Component component;
   private Audit h;
   @Inject
   protected SsgActiveConnectorManager ssgActiveConnectorManager;
   private static final String[] i;

   protected ActiveTransportModule(@NotNull String var1, @NotNull Component var2, @NotNull Logger var3, @NotNull String var4) {
      if (var1 == null) {
         b(0);
      }

      if (var2 == null) {
         b(1);
      }

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

      if (var4 == null) {
         b(3);
      }

      super(var1, var3, var4, null);
      this.component = var2;
      this.logger = var3;
   }

   @Inject
   @Override
   protected void setLicenseManager(LicenseManager var1) {
      super.setLicenseManager(var1);
   }

   protected boolean isInitialized() {
      return this.isStarted();
   }

   protected boolean isCurrent(Goid var1, int var2) {
      return false;
   }

   protected abstract void addConnector(@NotNull SsgActiveConnector var1) throws ListenerException;

   protected abstract void removeConnector(Goid var1);

   protected abstract Set<String> getSupportedTypes();

   protected boolean typeIsOwnedByThisModule(@NotNull String var1) {
      try {
         if (var1 == null) {
            b(4);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return this.getSupportedTypes().contains(var1);
   }

   protected boolean connectorIsOwnedByThisModule(@NotNull SsgActiveConnector var1) {
      try {
         if (var1 == null) {
            b(5);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return this.typeIsOwnedByThisModule(var1.getType());
   }

   protected boolean isValidConnectorConfig(@NotNull SsgActiveConnector var1) {
      try {
         if (var1 == null) {
            b(6);
         }

         return true;
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }
   }

   @Override
   public void onApplicationEvent(ApplicationEvent param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: invokestatic com/l7tech/server/transport/TransportModule.isEventIgnorable (Lorg/springframework/context/ApplicationEvent;)Z
      // 04: ifeq 0c
      // 07: return
      // 08: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0b: athrow
      // 0c: aload 0
      // 0d: aload 1
      // 0e: invokespecial com/l7tech/server/LifecycleBean.onApplicationEvent (Lorg/springframework/context/ApplicationEvent;)V
      // 11: aload 0
      // 12: invokevirtual com/l7tech/server/transport/ActiveTransportModule.isStarted ()Z
      // 15: ifne 1d
      // 18: return
      // 19: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1c: athrow
      // 1d: aload 1
      // 1e: instanceof com/l7tech/server/event/EntityInvalidationEvent
      // 21: ifeq 44
      // 24: aload 1
      // 25: checkcast com/l7tech/server/event/EntityInvalidationEvent
      // 28: astore 2
      // 29: ldc com/l7tech/gateway/common/transport/SsgActiveConnector
      // 2b: aload 2
      // 2c: invokevirtual com/l7tech/server/event/EntityInvalidationEvent.getEntityClass ()Ljava/lang/Class;
      // 2f: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 32: ifeq 41
      // 35: aload 0
      // 36: aload 2
      // 37: invokevirtual com/l7tech/server/transport/ActiveTransportModule.a (Lcom/l7tech/server/event/EntityInvalidationEvent;)V
      // 3a: goto 41
      // 3d: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 40: athrow
      // 41: goto 91
      // 44: aload 1
      // 45: instanceof com/l7tech/server/event/system/ReadyForMessages
      // 48: ifeq 91
      // 4b: aload 0
      // 4c: invokevirtual com/l7tech/server/transport/ActiveTransportModule.isStarted ()Z
      // 4f: ifeq 91
      // 52: goto 59
      // 55: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 58: athrow
      // 59: aload 0
      // 5a: invokevirtual com/l7tech/server/transport/ActiveTransportModule.isInitialized ()Z
      // 5d: ifne 91
      // 60: goto 67
      // 63: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 66: athrow
      // 67: aload 0
      // 68: invokevirtual com/l7tech/server/transport/ActiveTransportModule.doStart ()V
      // 6b: goto 91
      // 6e: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 71: athrow
      // 72: astore 2
      // 73: aload 0
      // 74: getfield com/l7tech/server/transport/ActiveTransportModule.logger Ljava/util/logging/Logger;
      // 77: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 7a: aload 2
      // 7b: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 7e: getstatic com/l7tech/server/transport/ActiveTransportModule.i [Ljava/lang/String;
      // 81: bipush 11
      // 83: aaload
      // 84: swap
      // 85: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 8a: aload 2
      // 8b: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 8e: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 91: return
      // try (36 -> 45): 46 com/l7tech/server/LifecycleException
      // try (33 -> 39): 40 com/l7tech/server/LifecycleException
      // try (21 -> 29): 30 com/l7tech/server/LifecycleException
      // try (6 -> 13): 13 com/l7tech/server/LifecycleException
      // try (0 -> 4): 4 com/l7tech/server/LifecycleException
      // try (48 -> 50): 53 com/l7tech/server/LifecycleException
      // try (42 -> 51): 51 java/lang/IllegalArgumentException
   }

   private void a(EntityInvalidationEvent var1) {
      Goid[] var2 = var1.getEntityIds();
      char[] var3 = var1.getEntityOperations();
      int var4 = 0;

      try {
         while (var4 < var2.length) {
            this.a(var3[var4], var2[var4]);
            var4++;
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }
   }

   private void a(char var1, Goid var2) {
      try {
         label30: {
            try {
               switch (var1) {
                  case 'C':
                  case 'U':
                     this.a(var2);
                     return;
                  case 'D':
                     break label30;
               }
            } catch (Throwable var5) {
               throw a(var5);
            }

            String[] var7 = i;
            this.logger.warning(var7[2] + var1);
            return;
         }

         this.removeConnector(var2);
      } catch (Throwable var6) {
         Logger var10000 = this.logger;
         Level var10001 = Level.WARNING;
         String var10002 = String.valueOf(var2);
         String var10003 = ExceptionUtils.getMessage(var6);
         String[] var4 = i;
         var10000.log(var10001, var4[1] + var10002 + var4[10] + var10003, var6);
      }
   }

   private void a(Goid param1) throws FindException, ListenerException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/server/transport/ActiveTransportModule.ssgActiveConnectorManager Lcom/l7tech/server/transport/SsgActiveConnectorManager;
      // 04: aload 1
      // 05: invokeinterface com/l7tech/server/transport/SsgActiveConnectorManager.findByPrimaryKey (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/objectmodel/PersistentEntity; 2
      // 0a: checkcast com/l7tech/gateway/common/transport/SsgActiveConnector
      // 0d: astore 2
      // 0e: aload 2
      // 0f: ifnonnull 17
      // 12: return
      // 13: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 16: athrow
      // 17: aload 0
      // 18: aload 2
      // 19: invokevirtual com/l7tech/gateway/common/transport/SsgActiveConnector.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 1c: aload 2
      // 1d: invokevirtual com/l7tech/gateway/common/transport/SsgActiveConnector.getVersion ()I
      // 20: invokevirtual com/l7tech/server/transport/ActiveTransportModule.isCurrent (Lcom/l7tech/objectmodel/Goid;I)Z
      // 23: ifeq 2b
      // 26: return
      // 27: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2a: athrow
      // 2b: aload 0
      // 2c: aload 1
      // 2d: invokevirtual com/l7tech/server/transport/ActiveTransportModule.removeConnector (Lcom/l7tech/objectmodel/Goid;)V
      // 30: aload 2
      // 31: invokevirtual com/l7tech/gateway/common/transport/SsgActiveConnector.isEnabled ()Z
      // 34: ifeq a5
      // 37: aload 0
      // 38: aload 2
      // 39: invokevirtual com/l7tech/server/transport/ActiveTransportModule.connectorIsOwnedByThisModule (Lcom/l7tech/gateway/common/transport/SsgActiveConnector;)Z
      // 3c: ifeq a5
      // 3f: goto 46
      // 42: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 45: athrow
      // 46: aload 0
      // 47: aload 2
      // 48: invokevirtual com/l7tech/server/transport/ActiveTransportModule.isValidConnectorConfig (Lcom/l7tech/gateway/common/transport/SsgActiveConnector;)Z
      // 4b: ifeq a5
      // 4e: goto 55
      // 51: invokestatic com/l7tech/server/transport/ActiveTransportModule.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 54: athrow
      // 55: aload 2
      // 56: invokevirtual com/l7tech/gateway/common/transport/SsgActiveConnector.getReadOnlyCopy ()Lcom/l7tech/gateway/common/transport/SsgActiveConnector;
      // 59: astore 3
      // 5a: aload 0
      // 5b: aload 3
      // 5c: invokevirtual com/l7tech/server/transport/ActiveTransportModule.addConnector (Lcom/l7tech/gateway/common/transport/SsgActiveConnector;)V
      // 5f: goto a5
      // 62: astore 4
      // 64: aload 0
      // 65: getfield com/l7tech/server/transport/ActiveTransportModule.logger Ljava/util/logging/Logger;
      // 68: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 6b: aload 3
      // 6c: invokevirtual com/l7tech/gateway/common/transport/SsgActiveConnector.getType ()Ljava/lang/String;
      // 6f: aload 3
      // 70: invokevirtual com/l7tech/gateway/common/transport/SsgActiveConnector.getName ()Ljava/lang/String;
      // 73: aload 4
      // 75: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 78: astore 5
      // 7a: astore 6
      // 7c: astore 7
      // 7e: getstatic com/l7tech/server/transport/ActiveTransportModule.i [Ljava/lang/String;
      // 81: astore 8
      // 83: aload 8
      // 85: bipush 13
      // 87: aaload
      // 88: aload 7
      // 8a: aload 8
      // 8c: bipush 6
      // 8e: aaload
      // 8f: aload 6
      // 91: aload 8
      // 93: bipush 8
      // 95: aaload
      // 96: aload 5
      // 98: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001\u0001" ]
      // 9d: aload 4
      // 9f: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // a2: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // a5: return
      // try (27 -> 38): 39 java/lang/Exception
      // try (21 -> 31): 32 java/lang/Exception
      // try (11 -> 19): 19 java/lang/Exception
      // try (6 -> 9): 9 java/lang/Exception
      // try (44 -> 47): 48 java/lang/Exception
   }

   protected final void auditError(String var1, String var2, @Nullable Throwable var3) {
      this.getAudit().logAndAudit(SystemMessages.CONNECTOR_ERROR, new String[]{var1, var2}, var3);
   }

   protected Audit getAudit() {
      Object var1 = this.h;
      if (var1 == null) {
         var1 = new Auditor(this, this.getApplicationContext(), this.logger);
         this.h = (Audit)var1;
      }

      return (Audit)var1;
   }

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

   static {
      String[] var5 = new String[19];
      int var3 = 0;
      String var2 = ")*Fl-X+/&Cl2\n-< Yl5\u001d>$6[,3\u001bp\u000b&_*7\n\u000b8$E01\u0000->\bD'4\u0003:1\u000f7Y,3O/8*H&2\u001c6$\"\u000b )\u000e1- \u000b%.\u001d\u007f+&_*7\n\u007f)*E-$\f+%7\u000b,(\u000b\u007f\u001f\u001f+Y&\"\u00008$,Q&%O:$1B78O0: Y\"5\u00060$\u007f\u000b\u0004><[&\t)*F3.\u0001:$1\u0006&*L$$\u001d\u0012j$H7(\u0019:j&D-/\n<>*Yc\u001c)*E-$\f+%7b0\u000e\u00181/!i:\u0015\u000769\bD'4\u0003:\u0002pe\u000e&,H&/\u001c:\f J74\u001d:\u0002pe!\u000f7Y,3O,>$Y7(\u00018j1Y\"/\u001c/%7_c,\u0000;?)Nya\u0006v,E*5Q\u0010\u001f+J!-\n\u007f>*\u000b05\u000e->e>\u000b7L6,\n1>eM,3O\u001f\u0004*_\r4\u00033j5J1 \u0002:> YcfJ,meD%aJ,d`Xc,\u001a,>eE,5O=/eE6-\u0003\u0004$$F&\u001296L\u0002\"\u001b6< h,/\u0001:)1D1";
      int var4 = ")*Fl-X+/&Cl2\n-< Yl5\u001d>$6[,3\u001bp\u000b&_*7\n\u000b8$E01\u0000->\bD'4\u0003:1\u000f7Y,3O/8*H&2\u001c6$\"\u000b )\u000e1- \u000b%.\u001d\u007f+&_*7\n\u007f)*E-$\f+%7\u000b,(\u000b\u007f\u001f\u001f+Y&\"\u00008$,Q&%O:$1B78O0: Y\"5\u00060$\u007f\u000b\u0004><[&\t)*F3.\u0001:$1\u0006&*L$$\u001d\u0012j$H7(\u0019:j&D-/\n<>*Yc\u001c)*E-$\f+%7b0\u000e\u00181/!i:\u0015\u000769\bD'4\u0003:\u0002pe\u000e&,H&/\u001c:\f J74\u001d:\u0002pe!\u000f7Y,3O,>$Y7(\u00018j1Y\"/\u001c/%7_c,\u0000;?)Nya\u0006v,E*5Q\u0010\u001f+J!-\n\u007f>*\u000b05\u000e->e>\u000b7L6,\n1>eM,3O\u001f\u0004*_\r4\u00033j5J1 \u0002:> YcfJ,meD%aJ,d`Xc,\u001a,>eE,5O=/eE6-\u0003\u0004$$F&\u001296L\u0002\"\u001b6< h,/\u0001:)1D1"
         .length();
      char var1 = '1';
      int var7 = -1;

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

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

                  var2 = "df\u0001|RFJgq\u0014}YLQxv\u0002TtQp|z\u0016yl'xw\\aSp\u001fw~Vq\u007fm2vuSlw";
                  var4 = "df\u0001|RFJgq\u0014}YLQxv\u0002TtQp|z\u0016yl'xw\\aSp\u001fw~Vq\u007fm2vuSlw".length();
                  var1 = 23;
                  var7 = -1;
            }

            var10000 = 115;
            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] ^ 118);
      }

      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 -> 99;
            case 1 -> 108;
            case 2 -> 2;
            case 3 -> 106;
            case 4 -> 104;
            case 5 -> 70;
            default -> 118;
         });
      }

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