package com.l7tech.server.search.processors;

import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.FindException;
import com.l7tech.policy.Policy;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.server.policy.EncapsulatedAssertionConfigManager;
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.EmptyIterator;
import com.l7tech.util.ExceptionUtils;
import jakarta.inject.Inject;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.NotNull;

public class PolicyDependencyProcessor extends DefaultDependencyProcessor<Policy> implements DependencyProcessor<Policy> {
   @Inject
   private EncapsulatedAssertionConfigManager encapsulatedAssertionConfigManager;
   private static final String[] a;

   @NotNull
   public List<Dependency> findDependencies(@NotNull Policy param1, @NotNull DependencyFinder param2) throws FindException, CannotRetrieveDependenciesException {
      // $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:
      // 000: aload 1
      // 001: ifnonnull 00f
      // 004: bipush 0
      // 005: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.b (I)V
      // 008: goto 00f
      // 00b: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 00e: athrow
      // 00f: aload 2
      // 010: ifnonnull 01e
      // 013: bipush 1
      // 014: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.b (I)V
      // 017: goto 01e
      // 01a: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01d: athrow
      // 01e: new java/util/ArrayList
      // 021: dup
      // 022: invokespecial java/util/ArrayList.<init> ()V
      // 025: astore 3
      // 026: aload 2
      // 027: getstatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a [Ljava/lang/String;
      // 02a: astore 10
      // 02c: aload 10
      // 02e: bipush 2
      // 02f: aaload
      // 030: ldc java/lang/Boolean
      // 032: bipush 0
      // 033: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // 036: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
      // 039: checkcast java/lang/Boolean
      // 03c: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 03f: istore 4
      // 041: iload 4
      // 043: ifeq 099
      // 046: aload 0
      // 047: getfield com/l7tech/server/search/processors/PolicyDependencyProcessor.encapsulatedAssertionConfigManager Lcom/l7tech/server/policy/EncapsulatedAssertionConfigManager;
      // 04a: aload 1
      // 04b: invokevirtual com/l7tech/policy/Policy.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 04e: invokeinterface com/l7tech/server/policy/EncapsulatedAssertionConfigManager.findByPolicyGoid (Lcom/l7tech/objectmodel/Goid;)Ljava/util/Collection; 2
      // 053: checkcast java/util/List
      // 056: astore 5
      // 058: aload 5
      // 05a: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 05f: astore 6
      // 061: aload 6
      // 063: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 068: ifeq 099
      // 06b: aload 6
      // 06d: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 072: checkcast com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig
      // 075: astore 7
      // 077: aload 2
      // 078: aload 7
      // 07a: aconst_null
      // 07b: invokestatic com/l7tech/server/search/processors/DependencyFinder$FindResults.create (Ljava/lang/Object;Lcom/l7tech/objectmodel/EntityHeader;)Lcom/l7tech/server/search/processors/DependencyFinder$FindResults;
      // 07e: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Lcom/l7tech/server/search/processors/DependencyFinder$FindResults;)Lcom/l7tech/server/search/objects/Dependency;
      // 081: astore 8
      // 083: aload 8
      // 085: ifnull 096
      // 088: aload 3
      // 089: aload 8
      // 08b: invokevirtual java/util/ArrayList.add (Ljava/lang/Object;)Z
      // 08e: pop
      // 08f: goto 096
      // 092: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 095: athrow
      // 096: goto 061
      // 099: aload 1
      // 09a: invokevirtual com/l7tech/policy/Policy.getAssertion ()Lcom/l7tech/policy/assertion/Assertion;
      // 09d: astore 5
      // 09f: goto 0cf
      // 0a2: astore 6
      // 0a4: new com/l7tech/server/search/exceptions/CannotRetrieveDependenciesException
      // 0a7: dup
      // 0a8: ldc com/l7tech/policy/assertion/Assertion
      // 0aa: aload 1
      // 0ab: invokevirtual com/l7tech/policy/Policy.getId ()Ljava/lang/String;
      // 0ae: aload 6
      // 0b0: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 0b3: getstatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a [Ljava/lang/String;
      // 0b6: astore 10
      // 0b8: aload 10
      // 0ba: bipush 0
      // 0bb: aaload
      // 0bc: dup_x2
      // 0bd: pop
      // 0be: aload 10
      // 0c0: bipush 10
      // 0c2: aaload
      // 0c3: swap
      // 0c4: invokedynamic makeConcatWithConstants (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" ]
      // 0c9: aload 6
      // 0cb: invokespecial com/l7tech/server/search/exceptions/CannotRetrieveDependenciesException.<init> (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0ce: athrow
      // 0cf: aload 5
      // 0d1: ifnull 0e0
      // 0d4: aload 5
      // 0d6: invokevirtual com/l7tech/policy/assertion/Assertion.preorderIterator ()Ljava/util/Iterator;
      // 0d9: goto 0e7
      // 0dc: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0df: athrow
      // 0e0: new com/l7tech/util/EmptyIterator
      // 0e3: dup
      // 0e4: invokespecial com/l7tech/util/EmptyIterator.<init> ()V
      // 0e7: astore 6
      // 0e9: aload 2
      // 0ea: getstatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a [Ljava/lang/String;
      // 0ed: bipush 4
      // 0ee: aaload
      // 0ef: ldc java/lang/Boolean
      // 0f1: bipush 1
      // 0f2: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // 0f5: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
      // 0f8: checkcast java/lang/Boolean
      // 0fb: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 0fe: istore 7
      // 100: aload 6
      // 102: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 107: ifeq 153
      // 10a: aload 6
      // 10c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 111: checkcast com/l7tech/policy/assertion/Assertion
      // 114: astore 8
      // 116: iload 7
      // 118: ifeq 13d
      // 11b: aload 2
      // 11c: aload 8
      // 11e: aconst_null
      // 11f: invokestatic com/l7tech/server/search/processors/DependencyFinder$FindResults.create (Ljava/lang/Object;Lcom/l7tech/objectmodel/EntityHeader;)Lcom/l7tech/server/search/processors/DependencyFinder$FindResults;
      // 122: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Lcom/l7tech/server/search/processors/DependencyFinder$FindResults;)Lcom/l7tech/server/search/objects/Dependency;
      // 125: astore 9
      // 127: aload 9
      // 129: ifnull 13a
      // 12c: aload 3
      // 12d: aload 9
      // 12f: invokevirtual java/util/ArrayList.add (Ljava/lang/Object;)Z
      // 132: pop
      // 133: goto 13a
      // 136: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 139: athrow
      // 13a: goto 150
      // 13d: aload 2
      // 13e: aload 8
      // 140: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Object;)Ljava/util/List;
      // 143: new com/l7tech/server/search/processors/ah
      // 146: dup
      // 147: aload 0
      // 148: aload 3
      // 149: invokespecial com/l7tech/server/search/processors/ah.<init> (Lcom/l7tech/server/search/processors/PolicyDependencyProcessor;Ljava/util/ArrayList;)V
      // 14c: invokestatic com/l7tech/util/Functions.forall (Ljava/lang/Iterable;Lcom/l7tech/util/Functions$Unary;)Z
      // 14f: pop
      // 150: goto 100
      // 153: aload 1
      // 154: invokevirtual com/l7tech/policy/Policy.getSecurityZone ()Lcom/l7tech/objectmodel/SecurityZone;
      // 157: astore 8
      // 159: aload 2
      // 15a: aload 8
      // 15c: aconst_null
      // 15d: invokestatic com/l7tech/server/search/processors/DependencyFinder$FindResults.create (Ljava/lang/Object;Lcom/l7tech/objectmodel/EntityHeader;)Lcom/l7tech/server/search/processors/DependencyFinder$FindResults;
      // 160: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Lcom/l7tech/server/search/processors/DependencyFinder$FindResults;)Lcom/l7tech/server/search/objects/Dependency;
      // 163: astore 9
      // 165: aload 9
      // 167: ifnull 188
      // 16a: aload 3
      // 16b: aload 9
      // 16d: invokevirtual java/util/ArrayList.contains (Ljava/lang/Object;)Z
      // 170: ifne 188
      // 173: goto 17a
      // 176: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 179: athrow
      // 17a: aload 3
      // 17b: aload 9
      // 17d: invokevirtual java/util/ArrayList.add (Ljava/lang/Object;)Z
      // 180: pop
      // 181: goto 188
      // 184: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 187: athrow
      // 188: aload 3
      // 189: dup
      // 18a: ifnonnull 198
      // 18d: bipush 2
      // 18e: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.b (I)V
      // 191: goto 198
      // 194: invokestatic com/l7tech/server/search/processors/PolicyDependencyProcessor.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 197: athrow
      // 198: areturn
      // try (56 -> 62): 63 java/io/IOException
      // try (7 -> 11): 12 java/io/IOException
      // try (0 -> 4): 5 java/io/IOException
      // try (66 -> 69): 70 java/io/IOException
      // try (93 -> 98): 98 java/io/IOException
      // try (130 -> 136): 137 java/io/IOException
      // try (160 -> 166): 167 java/io/IOException
      // try (162 -> 173): 174 java/io/IOException
      // try (176 -> 181): 182 java/io/IOException
   }

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

      try {
         if (var2 == null) {
            b(4);
         }
      } catch (CannotReplaceDependenciesException var6) {
         throw a(var6);
      }

      try {
         if (var3 == null) {
            b(5);
         }
      } catch (CannotReplaceDependenciesException var7) {
         throw a(var7);
      }

      try {
         super.replaceDependencies(var1, var2, var3, var4);
         if (var4) {
            a(var1, var2, var3);
         }
      } catch (CannotReplaceDependenciesException var5) {
         throw a(var5);
      }
   }

   static void a(@NotNull Policy var0, @NotNull Map<EntityHeader, EntityHeader> var1, @NotNull DependencyFinder var2) throws CannotReplaceDependenciesException {
      try {
         if (var0 == null) {
            b(6);
         }
      } catch (IOException var12) {
         throw a(var12);
      }

      try {
         if (var1 == null) {
            b(7);
         }
      } catch (IOException var9) {
         throw a(var9);
      }

      try {
         if (var2 == null) {
            b(8);
         }
      } catch (IOException var11) {
         throw a(var11);
      }

      Assertion var3;
      try {
         var3 = var0.getAssertion();
      } catch (IOException var8) {
         String var10003 = var0.getId();
         String var10004 = ExceptionUtils.getMessage(var8);
         String[] var6 = a;
         throw new CannotReplaceDependenciesException(Assertion.class, var6[6] + var10003 + var6[11] + var10004, var8);
      }

      Object var10000;
      label52: {
         try {
            if (var3 != null) {
               var10000 = var3.preorderIterator();
               break label52;
            }
         } catch (IOException var10) {
            throw a(var10);
         }

         var10000 = new EmptyIterator();
      }

      Object var4 = var10000;

      while (var4.hasNext()) {
         Assertion var5 = (Assertion)var4.next();
         var2.replaceDependencies(var5, var1, true);
      }

      try {
         var0.flush();
      } catch (IOException var7) {
         String var14 = var0.getId();
         String var15 = ExceptionUtils.getMessage(var7);
         String[] var13 = a;
         throw new CannotReplaceDependenciesException(Assertion.class, var13[0] + var14 + var13[10] + var15, var7);
      }
   }

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

   static {
      String[] var5 = new String[18];
      int var3 = 0;
      String var2 = "_!M9\\z\u00036?T4Yp\u001e68R,X3\u000ero=u Vw\\$\u0013s,SwCv\u0015`*IwCv\u0006d,Sw@a\bu*H+_a\u00149\u001fT4Yp\u001eR*K=^w\u0002x,B\bB|\u0004s<H7B\u0018s!X9C`&e\u001fT4Yp\u001eR*K=^w\u0002x,B\u0013d*K4Qp\u0002R*K=^w\u0002x,R=C\u001ed*O-B}&e<^*Dz\bx<z+tv\u0017s!_=^p\u000es<\u0006p&U<Ua\u0017_!M9\\z\u00036?T4Yp\u001e68R,X3\u000ero\u000ed*K4Qp\u0002{*U,}r\u0017>W=\\-]v\tbo]7B3'X O\u0016E\u007f\u000b6?Z*Q~\u0002b*Ix\u00176\u00141oT>\u00106\u00148jHx]f\u0014boU7D3\u0005soU-\\\u007f\"d*K4Qp\u0002F W1Sj&e<^*Dz\bx\u000b^(U}\u0003s!X1U`\u0002,o\u0002,o\u0006f W1Sj=u Vw\\$\u0013s,SwCv\u0015`*IwCv\u0006d,Sw@a\bu*H+_a\u00149\u001fT4Yp\u001eR*K=^w\u0002x,B\bB|\u0004s<H7B\u0010p&U<tv\u0017s!_=^p\u000es<*V\u0001T,~f\u000bzoV=D{\bro\u001e+\u001e6\u00146\"N+D3\ty;\u001b*Ug\u0012d!\u001b6E\u007f\u000b";
      int var4 = "_!M9\\z\u00036?T4Yp\u001e68R,X3\u000ero=u Vw\\$\u0013s,SwCv\u0015`*IwCv\u0006d,Sw@a\bu*H+_a\u00149\u001fT4Yp\u001eR*K=^w\u0002x,B\bB|\u0004s<H7B\u0018s!X9C`&e\u001fT4Yp\u001eR*K=^w\u0002x,B\u0013d*K4Qp\u0002R*K=^w\u0002x,R=C\u001ed*O-B}&e<^*Dz\bx<z+tv\u0017s!_=^p\u000es<\u0006p&U<Ua\u0017_!M9\\z\u00036?T4Yp\u001e68R,X3\u000ero\u000ed*K4Qp\u0002{*U,}r\u0017>W=\\-]v\tbo]7B3'X O\u0016E\u007f\u000b6?Z*Q~\u0002b*Ix\u00176\u00141oT>\u00106\u00148jHx]f\u0014boU7D3\u0005soU-\\\u007f\"d*K4Qp\u0002F W1Sj&e<^*Dz\bx\u000b^(U}\u0003s!X1U`\u0002,o\u0002,o\u0006f W1Sj=u Vw\\$\u0013s,SwCv\u0015`*IwCv\u0006d,Sw@a\bu*H+_a\u00149\u001fT4Yp\u001eR*K=^w\u0002x,B\bB|\u0004s<H7B\u0010p&U<tv\u0017s!_=^p\u000es<*V\u0001T,~f\u000bzoV=D{\bro\u001e+\u001e6\u00146\"N+D3\ty;\u001b*Ug\u0012d!\u001b6E\u007f\u000b"
         .length();
      char var1 = 23;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 78;
         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 = "\u000fT=R<\t}\u0010T\u0010\u0019O<U\u001d\u001f~\u001aH6T7\u0019g\u001aU";
                  var4 = "\u000fT=R<\t}\u0010T\u0010\u0019O<U\u001d\u001f~\u001aH6T7\u0019g\u001aU".length();
                  var1 = '\t';
                  var7 = -1;
            }

            var10000 = 39;
            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] ^ 41);
      }

      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 -> 88;
            case 1 -> 1;
            case 2 -> 117;
            case 3 -> 22;
            case 4 -> 126;
            case 5 -> 93;
            default -> 41;
         });
      }

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