package com.l7tech.server.service;

import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.event.EntityInvalidationEvent;
import com.l7tech.util.ArrayUtils;
import com.l7tech.util.Pair;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;

class x implements Runnable {
   final List val$notificationList;
   final ServiceCache this$0;
   private static final String a;

   x(ServiceCache var1, List var2) {
      this.this$0 = var1;
      this.val$notificationList = var2;
   }

   @Override
   public void run() {
      LinkedList var1 = new LinkedList();
      LinkedList var2 = new LinkedList();
      LinkedList var3 = new LinkedList();
      LinkedList var4 = new LinkedList();

      for (Pair var6 : this.val$notificationList) {
         Goid var7 = (Goid)var6.left;
         ServiceCache.CachedServiceNotificationType var8 = (ServiceCache.CachedServiceNotificationType)var6.right;
         switch (var8) {
            case CREATED:
               var1.add(var7);
               var2.add('C');
               break;
            case ENABLED:
               var3.add(var7);
               break;
            case DISABLED:
               var4.add(var7);
               break;
            case UPDATED:
               var1.add(var7);
               var2.add('U');
               break;
            case DELETED:
               var1.add(var7);
               var2.add('D');
         }
      }

      if (!var1.isEmpty()) {
         ServiceCache.a.log(Level.INFO, a + var1);
         this.this$0
            .getApplicationContext()
            .publishEvent(new EntityInvalidationEvent(this.this$0, PublishedService.class, var1.toArray(new Goid[var1.size()]), ArrayUtils.unboxChars(var2)));
      }

      if (!var3.isEmpty()) {
         this.this$0.a(var3, true);
      }

      if (!var4.isEmpty()) {
         this.this$0.a(var4, false);
      }
   }

   static {
      String var10002 = a(40, a("m\u001crF|{n\u0001;gCijoJASBd{~K\n-\u0007"));
      byte var10001 = -1;
      a = var10002;
   }

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

      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 -> 6;
            case 1 -> 70;
            case 2 -> 63;
            case 3 -> 15;
            case 4 -> 32;
            case 5 -> 54;
            default -> 34;
         });
      }

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