package com.l7tech.external.assertions.gatewaygraphql.server.util;

import com.l7tech.external.assertions.gatewaygraphql.server.resolver.entityref.EntityRefResolver;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.entityref.EntityRefResolverProvider;
import com.l7tech.external.assertions.gatewaygraphql.server.resolver.query.GraphQLResolverCollector;
import graphql.kickstart.tools.GraphQLResolver;
import java.util.HashMap;
import java.util.Map;

public class AssertionLocalBeanFactory {
   private final Map<Class<?>, Object> a = new HashMap<>();
   private final GraphQLResolverCollector b = new GraphQLResolverCollector();
   private static final String c;

   public <T> void register(Class<T> var1, T var2) {
      this.a.put(var1, var2);
   }

   public <T> T get(Class<T> var1) {
      return (T)this.a.get(var1);
   }

   public <T> T getRequired(Class<T> var1) {
      Object var2 = this.get(var1);

      try {
         if (var2 == null) {
            throw new IllegalStateException(c + var1.getName());
         } else {
            return (T)var2;
         }
      } catch (IllegalStateException var3) {
         throw a(var3);
      }
   }

   public boolean contains(Class<?> var1) {
      return this.a.containsKey(var1);
   }

   public Map<Class<?>, Object> asMap() {
      return this.a;
   }

   public GraphQLResolverCollector getResolverCollector() {
      return this.b;
   }

   public void addResolver(GraphQLResolver<?> var1) {
      this.b.addResolver(var1);
   }

   public void addRefResolver(EntityRefResolver var1) {
      EntityRefResolverProvider.INSTANCE.register(var1);
   }

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

   static {
      String var10002 = a(119, a(" \u001eK$E7)\u0016[X4M+l\u001c\u0014NqJ*9\u001c\u001f\u0000q"));
      byte var10001 = -1;
      c = var10002;
   }

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

      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 -> 5;
            case 1 -> 12;
            case 2 -> 77;
            case 3 -> 38;
            case 4 -> 91;
            case 5 -> 50;
            default -> 59;
         });
      }

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