package com.l7tech.external.assertions.gatewaygraphql.server.resolver.meta;

import com.fasterxml.jackson.databind.JsonNode;
import com.l7tech.external.assertions.gatewaygraphql.EntityTypeInfo;
import com.l7tech.external.assertions.gatewaygraphql.server.data.EntityMetadataDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.util.AssertionGraphQLSchemaFactory;
import com.l7tech.external.assertions.gatewaygraphql.server.util.Util;
import graphql.schema.GraphQLArgument;
import graphql.schema.GraphQLEnumType;
import graphql.schema.GraphQLEnumValueDefinition;
import graphql.schema.GraphQLFieldDefinition;
import graphql.schema.GraphQLFieldsContainer;
import graphql.schema.GraphQLInputObjectType;
import graphql.schema.GraphQLInputType;
import graphql.schema.GraphQLInterfaceType;
import graphql.schema.GraphQLList;
import graphql.schema.GraphQLNamedSchemaElement;
import graphql.schema.GraphQLNamedType;
import graphql.schema.GraphQLNonNull;
import graphql.schema.GraphQLObjectType;
import graphql.schema.GraphQLOutputType;
import graphql.schema.GraphQLSchema;
import graphql.schema.GraphQLType;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public final class GraphQLMetadataUtil {
   private static final JsonSchemaGenerator a;
   private static final String[] b;

   public static List<JsonNode> generateSchemas(EntityTypeInfo var0) {
      GraphQLObjectType var1 = a(var0);

      try {
         if (var1 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      return a.generateGraphQLTypeSchemas(var0, var1);
   }

   public static Map<String, String> getEntityTypeAnnotations(EntityTypeInfo var0) {
      GraphQLObjectType var1 = a(var0);

      try {
         if (var1 == null) {
            return Collections.emptyMap();
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      return Util.getTypeAnnotationsFrom(var1.getDescription());
   }

   public static Map<String, String> getEntitySubTypeAnnotations(GraphQLType var0) {
      return var0 instanceof GraphQLNamedSchemaElement var1 ? Util.getTypeAnnotationsFrom(var1.getDescription()) : Collections.emptyMap();
   }

   public static List<EntityMetadataDTO.EntityFieldMetadata> getEntityTypeFields(EntityTypeInfo var0) {
      GraphQLObjectType var1 = a(var0);

      try {
         if (var1 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      return var1.getFieldDefinitions().stream().map(GraphQLMetadataUtil::a).toList();
   }

   @NotNull
   private static EntityMetadataDTO.EntityFieldMetadata a(GraphQLFieldDefinition var0) {
      EntityMetadataDTO.EntityFieldMetadata var1 = new EntityMetadataDTO.EntityFieldMetadata(var0.getName(), a(var0.getType()));
      if (a(var0.getType()) instanceof GraphQLEnumType var3) {
         var1.setPermittedValues(var3.getValues().stream().<String>map(GraphQLEnumValueDefinition::getName).toList());
      }

      try {
         if (var1 == null) {
            a(0);
         }

         return var1;
      } catch (IllegalStateException var4) {
         throw a(var4);
      }
   }

   public static List<EntityMetadataDTO.SubEntityMetadata> getEntitySubTypes(EntityTypeInfo var0) {
      GraphQLObjectType var1 = a(var0);

      try {
         if (var1 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      HashMap var2 = new HashMap();

      try {
         a(var1, var2);
         var2.remove(var0.getTypeName());
         if (var0.getAltTypeName() != null) {
            var2.remove(var0.getAltTypeName());
         }
      } catch (IllegalStateException var3) {
         throw a(var3);
      }

      return var2.values().stream().toList();
   }

   public static List<EntityMetadataDTO.EntitySubFieldMetadata> getEntityTypeSubFields(EntityTypeInfo var0) {
      GraphQLObjectType var1 = a(var0);

      try {
         if (var1 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalStateException var5) {
         throw a(var5);
      }

      HashMap var2 = new HashMap();

      try {
         a(var1, var2);
         var2.remove(var0.getTypeName());
         if (var0.getAltTypeName() != null) {
            var2.remove(var0.getAltTypeName());
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      ArrayList var3 = new ArrayList();
      var2.values().forEach(var3::addAll);
      return var3;
   }

   @Nullable
   private static GraphQLObjectType a(EntityTypeInfo var0) {
      GraphQLSchema var1 = AssertionGraphQLSchemaFactory.INSTANCE.getGraphQLSchema();
      GraphQLObjectType var2 = null;
      if (var1 != null) {
         var2 = var1.getObjectType(var0.getTypeName());
         if (var2 == null) {
            var2 = var1.getObjectType(var0.getAltTypeName());
         }
      }

      return var2;
   }

   private static GraphQLObjectType a(boolean param0) {
      // $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: getstatic com/l7tech/external/assertions/gatewaygraphql/server/util/AssertionGraphQLSchemaFactory.INSTANCE Lcom/l7tech/external/assertions/gatewaygraphql/server/util/AssertionGraphQLSchemaFactory;
      // 03: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/util/AssertionGraphQLSchemaFactory.getGraphQLSchema ()Lgraphql/schema/GraphQLSchema;
      // 06: astore 1
      // 07: aload 1
      // 08: ifnull 26
      // 0b: iload 0
      // 0c: ifeq 21
      // 0f: goto 16
      // 12: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 15: athrow
      // 16: aload 1
      // 17: invokevirtual graphql/schema/GraphQLSchema.getMutationType ()Lgraphql/schema/GraphQLObjectType;
      // 1a: goto 25
      // 1d: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 20: athrow
      // 21: aload 1
      // 22: invokevirtual graphql/schema/GraphQLSchema.getQueryType ()Lgraphql/schema/GraphQLObjectType;
      // 25: areturn
      // 26: aconst_null
      // 27: areturn
      // try (3 -> 7): 8 java/lang/IllegalStateException
      // try (5 -> 13): 13 java/lang/IllegalStateException
   }

   private static String a(GraphQLOutputType var0) {
      try {
         if (var0 instanceof GraphQLNamedType) {
            return ((GraphQLNamedType)var0).getName();
         }
      } catch (IllegalStateException var1) {
         throw a(var1);
      }

      return var0.toString();
   }

   private static String a(GraphQLInputType var0) {
      try {
         if (var0 instanceof GraphQLNamedType) {
            return ((GraphQLNamedType)var0).getName();
         }
      } catch (IllegalStateException var1) {
         throw a(var1);
      }

      return var0.toString();
   }

   private static void a(GraphQLObjectType param0, Map<String, List<EntityMetadataDTO.EntitySubFieldMetadata>> 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: aload 0
      // 02: invokevirtual graphql/schema/GraphQLObjectType.getName ()Ljava/lang/String;
      // 05: invokeinterface java/util/Map.containsKey (Ljava/lang/Object;)Z 2
      // 0a: ifne ad
      // 0d: new java/util/ArrayList
      // 10: dup
      // 11: invokespecial java/util/ArrayList.<init> ()V
      // 14: astore 2
      // 15: aload 1
      // 16: aload 0
      // 17: invokevirtual graphql/schema/GraphQLObjectType.getName ()Ljava/lang/String;
      // 1a: aload 2
      // 1b: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 20: pop
      // 21: aload 0
      // 22: invokevirtual graphql/schema/GraphQLObjectType.getFieldDefinitions ()Ljava/util/List;
      // 25: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 2a: astore 3
      // 2b: aload 3
      // 2c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 31: ifeq ad
      // 34: aload 3
      // 35: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 3a: checkcast graphql/schema/GraphQLFieldDefinition
      // 3d: astore 4
      // 3f: aload 4
      // 41: invokevirtual graphql/schema/GraphQLFieldDefinition.getType ()Lgraphql/schema/GraphQLOutputType;
      // 44: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLType;)Lgraphql/schema/GraphQLType;
      // 47: astore 5
      // 49: aload 2
      // 4a: new com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$EntitySubFieldMetadata
      // 4d: dup
      // 4e: aload 4
      // 50: invokevirtual graphql/schema/GraphQLFieldDefinition.getName ()Ljava/lang/String;
      // 53: aload 4
      // 55: invokevirtual graphql/schema/GraphQLFieldDefinition.getType ()Lgraphql/schema/GraphQLOutputType;
      // 58: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLOutputType;)Ljava/lang/String;
      // 5b: aload 0
      // 5c: invokevirtual graphql/schema/GraphQLObjectType.getName ()Ljava/lang/String;
      // 5f: invokespecial com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$EntitySubFieldMetadata.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 62: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 67: pop
      // 68: aload 5
      // 6a: instanceof graphql/schema/GraphQLObjectType
      // 6d: ifeq 92
      // 70: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/JsonSchemaGenerator;
      // 73: aload 5
      // 75: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/JsonSchemaGenerator.canGenerateStandaloneSchemaFor (Lgraphql/schema/GraphQLType;)Z
      // 78: ifne 92
      // 7b: goto 82
      // 7e: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 81: athrow
      // 82: aload 5
      // 84: checkcast graphql/schema/GraphQLObjectType
      // 87: aload 1
      // 88: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLObjectType;Ljava/util/Map;)V
      // 8b: goto aa
      // 8e: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 91: athrow
      // 92: aload 5
      // 94: instanceof graphql/schema/GraphQLInterfaceType
      // 97: ifeq aa
      // 9a: aload 5
      // 9c: checkcast graphql/schema/GraphQLInterfaceType
      // 9f: aload 1
      // a0: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLInterfaceType;Ljava/util/Map;)V
      // a3: goto aa
      // a6: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // a9: athrow
      // aa: goto 2b
      // ad: return
      // try (30 -> 50): 51 java/lang/IllegalStateException
      // try (46 -> 58): 58 java/lang/IllegalStateException
      // try (60 -> 67): 68 java/lang/IllegalStateException
   }

   private static void a(GraphQLInterfaceType param0, Map<String, List<EntityMetadataDTO.EntitySubFieldMetadata>> 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: aload 0
      // 02: invokevirtual graphql/schema/GraphQLInterfaceType.getName ()Ljava/lang/String;
      // 05: invokeinterface java/util/Map.containsKey (Ljava/lang/Object;)Z 2
      // 0a: ifne ad
      // 0d: new java/util/ArrayList
      // 10: dup
      // 11: invokespecial java/util/ArrayList.<init> ()V
      // 14: astore 2
      // 15: aload 1
      // 16: aload 0
      // 17: invokevirtual graphql/schema/GraphQLInterfaceType.getName ()Ljava/lang/String;
      // 1a: aload 2
      // 1b: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 20: pop
      // 21: aload 0
      // 22: invokevirtual graphql/schema/GraphQLInterfaceType.getFieldDefinitions ()Ljava/util/List;
      // 25: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 2a: astore 3
      // 2b: aload 3
      // 2c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 31: ifeq ad
      // 34: aload 3
      // 35: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 3a: checkcast graphql/schema/GraphQLFieldDefinition
      // 3d: astore 4
      // 3f: aload 4
      // 41: invokevirtual graphql/schema/GraphQLFieldDefinition.getType ()Lgraphql/schema/GraphQLOutputType;
      // 44: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLType;)Lgraphql/schema/GraphQLType;
      // 47: astore 5
      // 49: aload 2
      // 4a: new com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$EntitySubFieldMetadata
      // 4d: dup
      // 4e: aload 4
      // 50: invokevirtual graphql/schema/GraphQLFieldDefinition.getName ()Ljava/lang/String;
      // 53: aload 4
      // 55: invokevirtual graphql/schema/GraphQLFieldDefinition.getType ()Lgraphql/schema/GraphQLOutputType;
      // 58: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLOutputType;)Ljava/lang/String;
      // 5b: aload 0
      // 5c: invokevirtual graphql/schema/GraphQLInterfaceType.getName ()Ljava/lang/String;
      // 5f: invokespecial com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$EntitySubFieldMetadata.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 62: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 67: pop
      // 68: aload 5
      // 6a: instanceof graphql/schema/GraphQLObjectType
      // 6d: ifeq 92
      // 70: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/JsonSchemaGenerator;
      // 73: aload 5
      // 75: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/JsonSchemaGenerator.canGenerateStandaloneSchemaFor (Lgraphql/schema/GraphQLType;)Z
      // 78: ifne 92
      // 7b: goto 82
      // 7e: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 81: athrow
      // 82: aload 5
      // 84: checkcast graphql/schema/GraphQLObjectType
      // 87: aload 1
      // 88: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLObjectType;Ljava/util/Map;)V
      // 8b: goto aa
      // 8e: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 91: athrow
      // 92: aload 5
      // 94: instanceof graphql/schema/GraphQLInterfaceType
      // 97: ifeq aa
      // 9a: aload 5
      // 9c: checkcast graphql/schema/GraphQLInterfaceType
      // 9f: aload 1
      // a0: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLInterfaceType;Ljava/util/Map;)V
      // a3: goto aa
      // a6: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // a9: athrow
      // aa: goto 2b
      // ad: return
      // try (30 -> 50): 51 java/lang/IllegalStateException
      // try (46 -> 58): 58 java/lang/IllegalStateException
      // try (60 -> 67): 68 java/lang/IllegalStateException
   }

   private static void a(GraphQLFieldsContainer param0, Map<String, EntityMetadataDTO.SubEntityMetadata> 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: aload 0
      // 02: invokeinterface graphql/schema/GraphQLFieldsContainer.getName ()Ljava/lang/String; 1
      // 07: invokeinterface java/util/Map.containsKey (Ljava/lang/Object;)Z 2
      // 0c: ifne a7
      // 0f: new com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$SubEntityMetadata
      // 12: dup
      // 13: aload 0
      // 14: invokeinterface graphql/schema/GraphQLFieldsContainer.getName ()Ljava/lang/String; 1
      // 19: aload 0
      // 1a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.getEntitySubTypeAnnotations (Lgraphql/schema/GraphQLType;)Ljava/util/Map;
      // 1d: invokespecial com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$SubEntityMetadata.<init> (Ljava/lang/String;Ljava/util/Map;)V
      // 20: astore 2
      // 21: aload 1
      // 22: aload 0
      // 23: invokeinterface graphql/schema/GraphQLFieldsContainer.getName ()Ljava/lang/String; 1
      // 28: aload 2
      // 29: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 2e: pop
      // 2f: aload 0
      // 30: invokeinterface graphql/schema/GraphQLFieldsContainer.getFieldDefinitions ()Ljava/util/List; 1
      // 35: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 3a: astore 3
      // 3b: aload 3
      // 3c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 41: ifeq a7
      // 44: aload 3
      // 45: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 4a: checkcast graphql/schema/GraphQLFieldDefinition
      // 4d: astore 4
      // 4f: aload 4
      // 51: invokevirtual graphql/schema/GraphQLFieldDefinition.getType ()Lgraphql/schema/GraphQLOutputType;
      // 54: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLType;)Lgraphql/schema/GraphQLType;
      // 57: astore 5
      // 59: aload 2
      // 5a: aload 4
      // 5c: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLFieldDefinition;)Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$EntityFieldMetadata;
      // 5f: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$SubEntityMetadata.addField (Lcom/l7tech/external/assertions/gatewaygraphql/server/data/EntityMetadataDTO$EntityFieldMetadata;)V
      // 62: aload 5
      // 64: instanceof graphql/schema/GraphQLObjectType
      // 67: ifeq 8c
      // 6a: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a Lcom/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/JsonSchemaGenerator;
      // 6d: aload 5
      // 6f: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/JsonSchemaGenerator.canGenerateStandaloneSchemaFor (Lgraphql/schema/GraphQLType;)Z
      // 72: ifne 8c
      // 75: goto 7c
      // 78: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 7b: athrow
      // 7c: aload 5
      // 7e: checkcast graphql/schema/GraphQLObjectType
      // 81: aload 1
      // 82: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLFieldsContainer;Ljava/util/Map;)V
      // 85: goto a4
      // 88: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 8b: athrow
      // 8c: aload 5
      // 8e: instanceof graphql/schema/GraphQLInterfaceType
      // 91: ifeq a4
      // 94: aload 5
      // 96: checkcast graphql/schema/GraphQLInterfaceType
      // 99: aload 1
      // 9a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLFieldsContainer;Ljava/util/Map;)V
      // 9d: goto a4
      // a0: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // a3: athrow
      // a4: goto 3b
      // a7: return
      // try (34 -> 45): 46 java/lang/IllegalStateException
      // try (41 -> 53): 53 java/lang/IllegalStateException
      // try (55 -> 62): 63 java/lang/IllegalStateException
   }

   private static GraphQLType a(GraphQLType var0) {
      while (true) {
         if (var0 instanceof GraphQLNonNull) {
            var0 = ((GraphQLNonNull)var0).getWrappedType();
         } else {
            if (!(var0 instanceof GraphQLList)) {
               return var0;
            }

            var0 = ((GraphQLList)var0).getWrappedType();
         }
      }
   }

   public static List<String> getEntityPrimaryInputs(EntityTypeInfo var0) {
      GraphQLFieldDefinition[] var1 = b(var0);

      try {
         if (var1 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      String var2 = var0.getTypeName();
      GraphQLFieldDefinition var10000 = var1[0];
      String[] var3 = b;
      return List.of(a(var10000, var3[0], var2 + var3[6]), a(var1[1], var3[10], var2 + var3[2]), a(var1[1], var3[12], var2 + var3[11]));
   }

   private static GraphQLFieldDefinition[] b(EntityTypeInfo var0) {
      GraphQLObjectType var1 = a(true);

      try {
         if (var1 == null) {
            return null;
         }
      } catch (IllegalStateException var3) {
         throw a(var3);
      }

      GraphQLFieldDefinition[] var10000 = new GraphQLFieldDefinition[2];
      String var10004 = var0.getQueryTypeNames()[1];
      String[] var2 = b;
      var10000[0] = var1.getFieldDefinition(var2[5] + var10004);
      var10000[1] = var1.getFieldDefinition(var2[1] + var0.getQueryTypeNames()[0]);
      return var10000;
   }

   private static String a(GraphQLFieldDefinition var0, String var1, String var2) {
      try {
         if (var0 == null) {
            return var2;
         }
      } catch (IllegalStateException var7) {
         throw a(var7);
      }

      GraphQLArgument var3 = var0.getArgument(var1);

      try {
         if (var3 == null) {
            return var2;
         }
      } catch (IllegalStateException var6) {
         throw a(var6);
      }

      GraphQLType var4 = a(var3.getType());

      try {
         return var4 instanceof GraphQLInputObjectType ? ((GraphQLInputObjectType)var4).getName() : var2;
      } catch (IllegalStateException var5) {
         throw a(var5);
      }
   }

   public static List<EntityMetadataDTO.EntityMethodMetadata> getEntityQueryMethods(EntityTypeInfo var0, List<EntityMetadataDTO.EntityInputMetadata> var1) {
      GraphQLObjectType var2 = a(false);

      try {
         if (var2 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      ArrayList var3 = new ArrayList();
      var2.getFieldDefinitions().forEach(var3x -> {
         try {
            if (a(var0, var3x.getType(), false)) {
               var3.add(a(var3x, var1, false));
            }
         } catch (IllegalStateException var4x) {
            throw a(var4x);
         }
      });
      return var3;
   }

   public static List<EntityMetadataDTO.EntityMethodMetadata> getEntityMutationMethods(EntityTypeInfo var0, List<EntityMetadataDTO.EntityInputMetadata> var1) {
      GraphQLObjectType var2 = a(true);

      try {
         if (var2 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      ArrayList var3 = new ArrayList();
      var2.getFieldDefinitions().forEach(var3x -> {
         try {
            if (a(var0, var3x.getType(), true)) {
               var3.add(a(var3x, var1, true));
            }
         } catch (IllegalStateException var4x) {
            throw a(var4x);
         }
      });
      return var3;
   }

   private static boolean a(EntityTypeInfo param0, GraphQLType param1, boolean param2) {
      // $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/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Lgraphql/schema/GraphQLType;)Lgraphql/schema/GraphQLType;
      // 04: astore 3
      // 05: aload 3
      // 06: instanceof graphql/schema/GraphQLObjectType
      // 09: ifeq 90
      // 0c: aload 3
      // 0d: checkcast graphql/schema/GraphQLObjectType
      // 10: astore 4
      // 12: aload 4
      // 14: invokevirtual graphql/schema/GraphQLObjectType.getName ()Ljava/lang/String;
      // 17: astore 5
      // 19: iload 2
      // 1a: ifeq 67
      // 1d: aload 5
      // 1f: aload 0
      // 20: invokevirtual com/l7tech/external/assertions/gatewaygraphql/EntityTypeInfo.getTypeNames ()[Ljava/lang/String;
      // 23: bipush 0
      // 24: aaload
      // 25: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.b [Ljava/lang/String;
      // 28: bipush 9
      // 2a: aaload
      // 2b: 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" ]
      // 30: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 33: ifne 5d
      // 36: goto 3d
      // 39: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 3c: athrow
      // 3d: aload 5
      // 3f: aload 0
      // 40: invokevirtual com/l7tech/external/assertions/gatewaygraphql/EntityTypeInfo.getTypeNames ()[Ljava/lang/String;
      // 43: bipush 1
      // 44: aaload
      // 45: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.b [Ljava/lang/String;
      // 48: bipush 7
      // 4a: aaload
      // 4b: 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" ]
      // 50: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 53: ifeq 65
      // 56: goto 5d
      // 59: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 5c: athrow
      // 5d: bipush 1
      // 5e: goto 66
      // 61: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 64: athrow
      // 65: bipush 0
      // 66: ireturn
      // 67: aload 5
      // 69: aload 0
      // 6a: invokevirtual com/l7tech/external/assertions/gatewaygraphql/EntityTypeInfo.getTypeName ()Ljava/lang/String;
      // 6d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 70: ifne 86
      // 73: aload 5
      // 75: aload 0
      // 76: invokevirtual com/l7tech/external/assertions/gatewaygraphql/EntityTypeInfo.getAltTypeName ()Ljava/lang/String;
      // 79: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 7c: ifeq 8e
      // 7f: goto 86
      // 82: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 85: athrow
      // 86: bipush 1
      // 87: goto 8f
      // 8a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/meta/GraphQLMetadataUtil.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 8d: athrow
      // 8e: bipush 0
      // 8f: ireturn
      // 90: bipush 0
      // 91: ireturn
      // try (12 -> 25): 26 java/lang/IllegalStateException
      // try (14 -> 39): 40 java/lang/IllegalStateException
      // try (28 -> 44): 44 java/lang/IllegalStateException
      // try (48 -> 58): 59 java/lang/IllegalStateException
      // try (53 -> 63): 63 java/lang/IllegalStateException
   }

   private static EntityMetadataDTO.EntityMethodMetadata a(GraphQLFieldDefinition var0, List<EntityMetadataDTO.EntityInputMetadata> var1, boolean var2) {
      EntityMetadataDTO.EntityMethodMetadata var3 = new EntityMetadataDTO.EntityMethodMetadata(var0.getName(), new ArrayList<>(), a(var0.getType()), var2);

      for (GraphQLArgument var5 : var0.getArguments()) {
         var3.add(a(var5, var1));
      }

      return var3;
   }

   private static EntityMetadataDTO.EntityInputFieldMetadata a(GraphQLArgument var0, List<EntityMetadataDTO.EntityInputMetadata> var1) {
      GraphQLType var2 = a(var0.getType());

      try {
         if (var1 == null || !(var2 instanceof GraphQLInputObjectType)) {
            return new EntityMetadataDTO.EntityInputFieldMetadata(var0.getName(), a(var0.getType()));
         }
      } catch (IllegalStateException var5) {
         throw a(var5);
      }

      GraphQLInputObjectType var3 = (GraphQLInputObjectType)var2;

      try {
         if (var1.stream().noneMatch(var1x -> var1x.getName().equals(var3.getName()))) {
            var1.add(new EntityMetadataDTO.EntityInputMetadata(var3.getName(), Collections.emptyList()));
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      return new EntityMetadataDTO.EntityInputFieldMetadata(var0.getName(), a(var0.getType()));
   }

   static {
      String[] var5 = new String[13];
      int var3 = 0;
      String var2 = ".- &d\u00062342d\u001f\f\u0017\"\"'y\u001bc\u000e- &dV$,=||M{\" 8|u\u0002{\"1>2|Un405!d\u0013`)0\u007f4q\u000ej0\")4b\u001b\u007f/2<|c\u001f}1&\"|b\u001f|(/&6bUb\"71|W\bn7+\u0001\u001f]\u001f{&'1'q/{./*\u0007\r?'^\u000fc+c=6d\u0012`#cu >_|g.% dZa(7p!u\u000ez5-p=e\u0016c\u00034&$\u0005\u000e- &d\u0007\u0017\")?\u007f\u001bk\u00153,\u0015=d\u0013{>\u000596|\u001eB\"717q\u000en\u0007\u0017\")?\u007f\u001bk\u0005.- &d";
      int var4 = ".- &d\u00062342d\u001f\f\u0017\"\"'y\u001bc\u000e- &dV$,=||M{\" 8|u\u0002{\"1>2|Un405!d\u0013`)0\u007f4q\u000ej0\")4b\u001b\u007f/2<|c\u001f}1&\"|b\u001f|(/&6bUb\"71|W\bn7+\u0001\u001f]\u001f{&'1'q/{./*\u0007\r?'^\u000fc+c=6d\u0012`#cu >_|g.% dZa(7p!u\u000ez5-p=e\u0016c\u00034&$\u0005\u000e- &d\u0007\u0017\")?\u007f\u001bk\u00153,\u0015=d\u0013{>\u000596|\u001eB\"717q\u000en\u0007\u0017\")?\u007f\u001bk\u0005.- &d"
         .length();
      char var1 = 5;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 117;
         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) {
                     b = var5;
                     a = new JsonSchemaGenerator();
                     return;
                  }

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

                  var2 = "FueI-Y)`\bfueI-Y)`";
                  var4 = "FueI-Y)`\bfueI-Y)`".length();
                  var1 = '\b';
                  var7 = -1;
            }

            var10000 = 38;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

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

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

      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 -> 50;
            case 1 -> 54;
            case 2 -> 37;
            case 3 -> 38;
            case 4 -> 101;
            case 5 -> 15;
            default -> 122;
         });
      }

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