package com.l7tech.server;

import com.l7tech.objectmodel.EntityManager;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.PersistentEntity;
import java.util.Map;
import java.util.TimerTask;
import java.util.logging.Logger;

public abstract class PeriodicVersionCheck extends TimerTask {
   private final Logger a = Logger.getLogger(this.getClass().getName());
   private EntityManager b;
   private Map<Goid, Integer> c;
   private static final long d = 4000L;
   private static final String[] h;

   public PeriodicVersionCheck(EntityManager var1) throws FindException {
      this.b = var1;
      this.c = var1.findVersionMap();
   }

   @Override
   public synchronized void run() {
      // $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 0
      // 001: getfield com/l7tech/server/PeriodicVersionCheck.b Lcom/l7tech/objectmodel/EntityManager;
      // 004: invokeinterface com/l7tech/objectmodel/EntityManager.findVersionMap ()Ljava/util/Map; 1
      // 009: astore 1
      // 00a: goto 024
      // 00d: astore 2
      // 00e: aload 0
      // 00f: getfield com/l7tech/server/PeriodicVersionCheck.a Ljava/util/logging/Logger;
      // 012: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 015: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 018: astore 10
      // 01a: aload 10
      // 01c: bipush 8
      // 01e: aaload
      // 01f: aload 2
      // 020: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 023: return
      // 024: new java/util/ArrayList
      // 027: dup
      // 028: invokespecial java/util/ArrayList.<init> ()V
      // 02b: astore 2
      // 02c: new java/util/ArrayList
      // 02f: dup
      // 030: invokespecial java/util/ArrayList.<init> ()V
      // 033: astore 3
      // 034: new java/util/ArrayList
      // 037: dup
      // 038: invokespecial java/util/ArrayList.<init> ()V
      // 03b: astore 4
      // 03d: aload 1
      // 03e: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 043: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 048: astore 5
      // 04a: aload 5
      // 04c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 051: ifeq 0e9
      // 054: aload 5
      // 056: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 05b: checkcast com/l7tech/objectmodel/Goid
      // 05e: astore 6
      // 060: aload 0
      // 061: getfield com/l7tech/server/PeriodicVersionCheck.c Ljava/util/Map;
      // 064: aload 6
      // 066: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 06b: checkcast java/lang/Integer
      // 06e: astore 7
      // 070: aload 7
      // 072: ifnonnull 0a1
      // 075: aload 0
      // 076: getfield com/l7tech/server/PeriodicVersionCheck.a Ljava/util/logging/Logger;
      // 079: aload 6
      // 07b: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 07e: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 081: bipush 4
      // 082: aaload
      // 083: swap
      // 084: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 087: bipush 3
      // 088: aaload
      // 089: invokedynamic makeConcatWithConstants (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" ]
      // 08e: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 091: aload 2
      // 092: aload 6
      // 094: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 099: pop
      // 09a: goto 0e6
      // 09d: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 0a0: athrow
      // 0a1: aload 1
      // 0a2: aload 6
      // 0a4: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 0a9: checkcast java/lang/Integer
      // 0ac: astore 8
      // 0ae: aload 8
      // 0b0: aload 7
      // 0b2: invokevirtual java/lang/Integer.equals (Ljava/lang/Object;)Z
      // 0b5: ifne 0e6
      // 0b8: aload 3
      // 0b9: aload 6
      // 0bb: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0c0: pop
      // 0c1: aload 0
      // 0c2: getfield com/l7tech/server/PeriodicVersionCheck.a Ljava/util/logging/Logger;
      // 0c5: aload 6
      // 0c7: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0ca: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 0cd: bipush 7
      // 0cf: aaload
      // 0d0: swap
      // 0d1: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 0d4: bipush 6
      // 0d6: aaload
      // 0d7: invokedynamic makeConcatWithConstants (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" ]
      // 0dc: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 0df: goto 0e6
      // 0e2: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 0e5: athrow
      // 0e6: goto 04a
      // 0e9: aload 0
      // 0ea: getfield com/l7tech/server/PeriodicVersionCheck.c Ljava/util/Map;
      // 0ed: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 0f2: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 0f7: astore 5
      // 0f9: aload 5
      // 0fb: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 100: ifeq 14b
      // 103: aload 5
      // 105: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 10a: checkcast com/l7tech/objectmodel/Goid
      // 10d: astore 6
      // 10f: aload 1
      // 110: aload 6
      // 112: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 117: ifnonnull 148
      // 11a: aload 4
      // 11c: aload 6
      // 11e: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 123: pop
      // 124: aload 0
      // 125: getfield com/l7tech/server/PeriodicVersionCheck.a Ljava/util/logging/Logger;
      // 128: aload 6
      // 12a: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 12d: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 130: bipush 7
      // 132: aaload
      // 133: swap
      // 134: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 137: bipush 1
      // 138: aaload
      // 139: invokedynamic makeConcatWithConstants (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" ]
      // 13e: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 141: goto 148
      // 144: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 147: athrow
      // 148: goto 0f9
      // 14b: aload 2
      // 14c: invokeinterface java/util/List.isEmpty ()Z 1
      // 151: ifeq 17c
      // 154: aload 3
      // 155: invokeinterface java/util/List.isEmpty ()Z 1
      // 15a: ifeq 17c
      // 15d: goto 164
      // 160: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 163: athrow
      // 164: aload 4
      // 166: invokeinterface java/util/List.isEmpty ()Z 1
      // 16b: ifeq 17c
      // 16e: goto 175
      // 171: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 174: athrow
      // 175: goto 283
      // 178: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 17b: athrow
      // 17c: aload 2
      // 17d: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 182: astore 5
      // 184: aload 5
      // 186: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 18b: ifeq 1e6
      // 18e: aload 5
      // 190: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 195: checkcast com/l7tech/objectmodel/Goid
      // 198: astore 6
      // 19a: aload 0
      // 19b: aload 6
      // 19d: bipush 0
      // 19e: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 1a1: invokevirtual com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/Goid;Ljava/lang/Integer;)Z
      // 1a4: ifeq 1e3
      // 1a7: aload 0
      // 1a8: getfield com/l7tech/server/PeriodicVersionCheck.b Lcom/l7tech/objectmodel/EntityManager;
      // 1ab: aload 6
      // 1ad: invokeinterface com/l7tech/objectmodel/EntityManager.findByPrimaryKey (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/objectmodel/PersistentEntity; 2
      // 1b2: astore 7
      // 1b4: goto 1d1
      // 1b7: astore 8
      // 1b9: aconst_null
      // 1ba: astore 7
      // 1bc: aload 0
      // 1bd: getfield com/l7tech/server/PeriodicVersionCheck.a Ljava/util/logging/Logger;
      // 1c0: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 1c3: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 1c6: astore 10
      // 1c8: aload 10
      // 1ca: bipush 0
      // 1cb: aaload
      // 1cc: aload 8
      // 1ce: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1d1: aload 7
      // 1d3: ifnull 1e3
      // 1d6: aload 0
      // 1d7: aload 7
      // 1d9: invokevirtual com/l7tech/server/PeriodicVersionCheck.b (Lcom/l7tech/objectmodel/PersistentEntity;)V
      // 1dc: goto 1e3
      // 1df: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 1e2: athrow
      // 1e3: goto 184
      // 1e6: aload 3
      // 1e7: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 1ec: astore 5
      // 1ee: aload 5
      // 1f0: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 1f5: ifeq 25b
      // 1f8: aload 5
      // 1fa: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 1ff: checkcast com/l7tech/objectmodel/Goid
      // 202: astore 6
      // 204: aload 1
      // 205: aload 6
      // 207: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 20c: checkcast java/lang/Integer
      // 20f: astore 7
      // 211: aload 0
      // 212: aload 6
      // 214: aload 7
      // 216: invokevirtual com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/Goid;Ljava/lang/Integer;)Z
      // 219: ifeq 258
      // 21c: aload 0
      // 21d: getfield com/l7tech/server/PeriodicVersionCheck.b Lcom/l7tech/objectmodel/EntityManager;
      // 220: aload 6
      // 222: invokeinterface com/l7tech/objectmodel/EntityManager.findByPrimaryKey (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/objectmodel/PersistentEntity; 2
      // 227: astore 8
      // 229: goto 246
      // 22c: astore 9
      // 22e: aconst_null
      // 22f: astore 8
      // 231: aload 0
      // 232: getfield com/l7tech/server/PeriodicVersionCheck.a Ljava/util/logging/Logger;
      // 235: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 238: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 23b: astore 10
      // 23d: aload 10
      // 23f: bipush 5
      // 240: aaload
      // 241: aload 9
      // 243: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 246: aload 8
      // 248: ifnull 258
      // 24b: aload 0
      // 24c: aload 8
      // 24e: invokevirtual com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/PersistentEntity;)V
      // 251: goto 258
      // 254: invokestatic com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/FindException;)Lcom/l7tech/objectmodel/FindException;
      // 257: athrow
      // 258: goto 1ee
      // 25b: aload 4
      // 25d: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 262: astore 5
      // 264: aload 5
      // 266: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 26b: ifeq 283
      // 26e: aload 5
      // 270: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 275: checkcast com/l7tech/objectmodel/Goid
      // 278: astore 6
      // 27a: aload 0
      // 27b: aload 6
      // 27d: invokevirtual com/l7tech/server/PeriodicVersionCheck.a (Lcom/l7tech/objectmodel/Goid;)V
      // 280: goto 264
      // 283: goto 297
      // 286: astore 1
      // 287: aload 0
      // 288: getfield com/l7tech/server/PeriodicVersionCheck.a Ljava/util/logging/Logger;
      // 28b: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 28e: getstatic com/l7tech/server/PeriodicVersionCheck.h [Ljava/lang/String;
      // 291: bipush 2
      // 292: aaload
      // 293: aload 1
      // 294: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 297: return
      // try (0 -> 4): 5 com/l7tech/objectmodel/FindException
      // try (169 -> 174): 175 com/l7tech/objectmodel/FindException
      // try (217 -> 222): 223 com/l7tech/objectmodel/FindException
      // try (0 -> 16): 260 java/lang/Exception
      // try (236 -> 241): 242 com/l7tech/objectmodel/FindException
      // try (188 -> 193): 194 com/l7tech/objectmodel/FindException
      // try (144 -> 151): 151 com/l7tech/objectmodel/FindException
      // try (138 -> 147): 148 com/l7tech/objectmodel/FindException
      // try (135 -> 141): 142 com/l7tech/objectmodel/FindException
      // try (110 -> 131): 132 com/l7tech/objectmodel/FindException
      // try (73 -> 94): 95 com/l7tech/objectmodel/FindException
      // try (46 -> 66): 66 com/l7tech/objectmodel/FindException
      // try (17 -> 259): 260 java/lang/Exception
   }

   public void markObjectAsStale(Goid var1) {
      this.c.remove(var1);
   }

   private void a(Goid var1) {
      this.c.remove(var1);
      this.onDelete(var1);
   }

   private boolean a(Goid var1, Integer var2) {
      boolean var3 = this.preSave(var1, var2);
      if (!var3) {
         this.c.put(var1, var2);
      }

      return var3;
   }

   private void a(PersistentEntity var1) {
      this.c.put(var1.getGoid(), var1.getVersion());
      this.onUpdate(var1);
   }

   private void b(PersistentEntity var1) {
      this.c.put(var1.getGoid(), var1.getVersion());
      this.onCreate(var1);
   }

   protected abstract void onDelete(Goid var1);

   protected boolean preSave(Goid var1, int var2) {
      return true;
   }

   protected void onUpdate(PersistentEntity var1) {
   }

   protected void onCreate(PersistentEntity var1) {
   }

   protected boolean notifyUpdate(Goid var1, int var2) {
      Integer var3 = this.c.put(var1, var2);
      return var3 == null || var3 != var2;
   }

   protected boolean notifyDelete(Goid var1) {
      return this.c.remove(var1) != null;
   }

   public long getFrequency() {
      return 4000L;
   }

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

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "<\u0015x_\u007faa\r\u0013mB+o \n[oDny5\u001c\u001f,Ujv/\u0016\u000f,Tn83\u001c\u000f~_nn$\u001d\u0012Y\u0013mE+z$\u001c\u0015,Rnt$\r\u001eh\u0018#<\t~Yy8\"\u0011\u001eo]bv&Y\riDxq.\u0017[eXmw3\u0014\u001ax_dvo\bY\u0012\u007f\u0016e}6W\u0007<\u0015x_\u007faa+<\u0015x_\u007faa\r\u0013mB+o \n[yFoy5\u001c\u001f,Ujv/\u0016\u000f,Tn83\u001c\u000f~_nn$\u001d\u0012Y\u0013mE+z$\u001c\u0015,C{| \r\u001eh\u0018";
      int var4 = "<\u0015x_\u007faa\r\u0013mB+o \n[oDny5\u001c\u001f,Ujv/\u0016\u000f,Tn83\u001c\u000f~_nn$\u001d\u0012Y\u0013mE+z$\u001c\u0015,Rnt$\r\u001eh\u0018#<\t~Yy8\"\u0011\u001eo]bv&Y\riDxq.\u0017[eXmw3\u0014\u001ax_dvo\bY\u0012\u007f\u0016e}6W\u0007<\u0015x_\u007faa+<\u0015x_\u007faa\r\u0013mB+o \n[yFoy5\u001c\u001f,Ujv/\u0016\u000f,Tn83\u001c\u000f~_nn$\u001d\u0012Y\u0013mE+z$\u001c\u0015,C{| \r\u001eh\u0018"
         .length();
      char var1 = '+';
      int var7 = -1;

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

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

                  var2 = "\u000f&KlLRRB/:MjJ\u000b\u0015/<KlVLR<-MvQD\u001c9f\u001fqPB\u0001j>ZwKB\u001d$h\\m]H\u0019j!L%K_\u001d:8Vk_\u000b\u00028-RdL^\u0000/$F";
                  var4 = "\u000f&KlLRRB/:MjJ\u000b\u0015/<KlVLR<-MvQD\u001c9f\u001fqPB\u0001j>ZwKB\u001d$h\\m]H\u0019j!L%K_\u001d:8Vk_\u000b\u00028-RdL^\u0000/$F"
                     .length();
                  var1 = 7;
                  var7 = -1;
            }

            var10000 = 106;
            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] ^ 24);
      }

      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 -> 32;
            case 1 -> 34;
            case 2 -> 85;
            case 3 -> 111;
            case 4 -> 82;
            case 5 -> 65;
            default -> 24;
         });
      }

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