package com.l7tech.objectmodel;

import com.l7tech.util.DeserializeSafe;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlTransient;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

@XmlRootElement
@DeserializeSafe
public class IdentityHeader extends EntityHeader {
   private Goid providerGoid;
   private final String commonName;
   private final boolean enabled;
   static final long serialVersionUID = -1950929739177960118L;
   private static final String c;

   @Deprecated
   public IdentityHeader() {
      this.commonName = "";
      this.enabled = true;
   }

   public IdentityHeader(Goid var1, Goid var2, EntityType var3, String var4, String var5, String var6, int var7) {
      this(var1, Goid.toString(var2), var3, var4, var5, var6, Integer.valueOf(var7), true);
   }

   public IdentityHeader(Goid var1, Goid var2, EntityType var3, String var4, String var5, String var6, int var7, boolean var8) {
      this(var1, Goid.toString(var2), var3, var4, var5, var6, Integer.valueOf(var7), var8);
   }

   public IdentityHeader(Goid var1, String var2, EntityType var3, String var4, String var5, String var6, Integer var7) {
      this(var1, var2, var3, var4, var5, var6, var7, true);
   }

   public IdentityHeader(Goid var1, String var2, EntityType var3, String var4, String var5, String var6, Integer var7, boolean var8) {
      super(var2, var3, var4, var5, var7);
      if (var3 != EntityType.USER) {
         try {
            if (var3 != EntityType.GROUP) {
               throw new IllegalArgumentException(c);
            }
         } catch (IllegalArgumentException var9) {
            throw a(var9);
         }
      }

      this.providerGoid = var1;
      this.commonName = var6;
      this.enabled = var8;
   }

   public IdentityHeader(Goid var1, EntityHeader var2) {
      this(
         var1,
         var2.getStrId(),
         var2.getType(),
         var2.getName(),
         var2.getDescription(),
         getCommonName(var2),
         var2.getVersion(),
         !(var2 instanceof IdentityHeader) || ((IdentityHeader)var2).isEnabled()
      );
   }

   @XmlAttribute
   @XmlJavaTypeAdapter(GoidAdapter.class)
   public Goid getProviderGoid() {
      return this.providerGoid;
   }

   @Deprecated
   public void setProviderGoid(Goid var1) {
      this.providerGoid = var1;
   }

   @XmlTransient
   public String getCommonName() {
      return this.commonName;
   }

   @XmlTransient
   public boolean isEnabled() {
      return this.enabled;
   }

   @Override
   public boolean equals(Object 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 0
      // 01: aload 1
      // 02: if_acmpne 0b
      // 05: bipush 1
      // 06: ireturn
      // 07: invokestatic com/l7tech/objectmodel/IdentityHeader.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0a: athrow
      // 0b: aload 1
      // 0c: ifnull 21
      // 0f: aload 0
      // 10: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 13: aload 1
      // 14: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 17: if_acmpeq 27
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/objectmodel/IdentityHeader.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 20: athrow
      // 21: bipush 0
      // 22: ireturn
      // 23: invokestatic com/l7tech/objectmodel/IdentityHeader.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 26: athrow
      // 27: aload 0
      // 28: aload 1
      // 29: invokespecial com/l7tech/objectmodel/EntityHeader.equals (Ljava/lang/Object;)Z
      // 2c: ifne 35
      // 2f: bipush 0
      // 30: ireturn
      // 31: invokestatic com/l7tech/objectmodel/IdentityHeader.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 34: athrow
      // 35: aload 1
      // 36: checkcast com/l7tech/objectmodel/IdentityHeader
      // 39: astore 2
      // 3a: aload 0
      // 3b: getfield com/l7tech/objectmodel/IdentityHeader.providerGoid Lcom/l7tech/objectmodel/Goid;
      // 3e: aload 2
      // 3f: getfield com/l7tech/objectmodel/IdentityHeader.providerGoid Lcom/l7tech/objectmodel/Goid;
      // 42: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 45: ireturn
      // try (0 -> 5): 5 java/lang/IllegalArgumentException
      // try (7 -> 14): 15 java/lang/IllegalArgumentException
      // try (9 -> 19): 19 java/lang/IllegalArgumentException
      // try (21 -> 27): 27 java/lang/IllegalArgumentException
   }

   @Override
   public int hashCode() {
      int var1 = super.hashCode();
      return 29 * var1 + this.providerGoid.hashCode();
   }

   @Override
   public int compareTo(Object var1) {
      int var2 = super.compareTo(var1);
      if (var2 == 0) {
         IdentityHeader var3 = (IdentityHeader)var1;
         var2 = this.providerGoid.compareTo(var3.providerGoid);
      }

      return var2;
   }

   private static String getCommonName(EntityHeader var0) {
      String var1 = null;
      if (var0 instanceof IdentityHeader var2) {
         var1 = var2.getCommonName();
      }

      return var1;
   }

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

   static {
      String var10002 = c(72, c("_sr\u007f#\u007f\u0018cmc6:s?n=dswS\u001f_O&y%&\u000bHRSF"));
      byte var10001 = -1;
      c = var10002;
   }

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

      return var10000;
   }

   private static String c(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 -> 82;
            case 1 -> 85;
            case 2 -> 78;
            case 3 -> 94;
            case 4 -> 31;
            case 5 -> 78;
            default -> 4;
         });
      }

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