package com.l7tech.identity.fed;

import com.l7tech.identity.GroupMembership;
import com.l7tech.objectmodel.Goid;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.IdClass;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import java.io.Serializable;
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;

@Entity
@Proxy(lazy = false)
@Table(name = "fed_user_group")
@IdClass(FederatedGroupMembership.FederatedGroupMembershipPK.class)
public class FederatedGroupMembership extends GroupMembership {
   private Goid thisGroupGoid;
   static final long serialVersionUID = 6472489943690598972L;

   public FederatedGroupMembership() {
   }

   public FederatedGroupMembership(Goid var1, Goid var2, Goid var3) throws NumberFormatException {
      this.thisGroupProviderGoid = var1;
      this.thisGroupGoid = var2;
      this.memberUserId = var3;
   }

   @Transient
   public String getId() {
      return Goid.toString(this.thisGroupGoid);
   }

   @Id
   @Column(name = "provider_goid")
   @Type(type = "com.l7tech.server.util.GoidType")
   @Override
   public Goid getThisGroupProviderGoid() {
      return super.getThisGroupProviderGoid();
   }

   @Id
   @Column(name = "fed_user_goid", nullable = false)
   @Type(type = "com.l7tech.server.util.GoidType")
   @Override
   public Goid getMemberUserId() {
      return super.getMemberUserId();
   }

   @Id
   @Column(name = "fed_group_goid", nullable = false)
   @Type(type = "com.l7tech.server.util.GoidType")
   @Override
   public Goid getThisGroupId() {
      return this.thisGroupGoid;
   }

   @Override
   public void setThisGroupId(Goid var1) throws NumberFormatException {
      this.thisGroupGoid = var1;
   }

   @Transient
   public int getVersion() {
      return 0;
   }

   public void setVersion(int var1) {
   }

   @Transient
   public Goid getGoid() {
      return null;
   }

   public void setGoid(Goid var1) {
   }

   @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 08
      // 05: bipush 1
      // 06: ireturn
      // 07: athrow
      // 08: aload 1
      // 09: ifnull 1b
      // 0c: aload 0
      // 0d: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 10: aload 1
      // 11: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 14: if_acmpeq 1e
      // 17: goto 1b
      // 1a: athrow
      // 1b: bipush 0
      // 1c: ireturn
      // 1d: athrow
      // 1e: aload 0
      // 1f: aload 1
      // 20: invokespecial com/l7tech/identity/GroupMembership.equals (Ljava/lang/Object;)Z
      // 23: ifne 29
      // 26: bipush 0
      // 27: ireturn
      // 28: athrow
      // 29: aload 1
      // 2a: checkcast com/l7tech/identity/fed/FederatedGroupMembership
      // 2d: astore 2
      // 2e: aload 0
      // 2f: getfield com/l7tech/identity/fed/FederatedGroupMembership.thisGroupGoid Lcom/l7tech/objectmodel/Goid;
      // 32: aload 2
      // 33: getfield com/l7tech/identity/fed/FederatedGroupMembership.thisGroupGoid Lcom/l7tech/objectmodel/Goid;
      // 36: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 39: ifne 3f
      // 3c: bipush 0
      // 3d: ireturn
      // 3e: athrow
      // 3f: aload 0
      // 40: getfield com/l7tech/identity/fed/FederatedGroupMembership.thisGroupProviderGoid Lcom/l7tech/objectmodel/Goid;
      // 43: aload 2
      // 44: getfield com/l7tech/identity/fed/FederatedGroupMembership.thisGroupProviderGoid Lcom/l7tech/objectmodel/Goid;
      // 47: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 4a: ifne 50
      // 4d: bipush 0
      // 4e: ireturn
      // 4f: athrow
      // 50: aload 0
      // 51: getfield com/l7tech/identity/fed/FederatedGroupMembership.memberUserId Lcom/l7tech/objectmodel/Goid;
      // 54: aload 2
      // 55: getfield com/l7tech/identity/fed/FederatedGroupMembership.memberUserId Lcom/l7tech/objectmodel/Goid;
      // 58: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 5b: ireturn
      // try (0 -> 5): 5 java/lang/NumberFormatException
      // try (6 -> 13): 14 java/lang/NumberFormatException
      // try (8 -> 17): 17 java/lang/NumberFormatException
      // try (18 -> 24): 24 java/lang/NumberFormatException
      // try (28 -> 36): 36 java/lang/NumberFormatException
      // try (37 -> 45): 45 java/lang/NumberFormatException
   }

   @Override
   public int hashCode() {
      int var1 = super.hashCode();

      int var10000;
      int var10001;
      label45: {
         try {
            var10000 = 29 * var1;
            if (this.thisGroupGoid != null) {
               var10001 = this.thisGroupGoid.hashCode();
               break label45;
            }
         } catch (NumberFormatException var4) {
            throw var4;
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label37: {
         try {
            var10000 = 29 * var1;
            if (this.thisGroupGoid != null) {
               var10001 = this.thisGroupProviderGoid.hashCode();
               break label37;
            }
         } catch (NumberFormatException var3) {
            throw var3;
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      try {
         var10000 = 29 * var1;
         if (this.thisGroupGoid != null) {
            return var10000 + this.memberUserId.hashCode();
         }
      } catch (NumberFormatException var2) {
         throw var2;
      }

      return var10000 + 0;
   }

   public static final class FederatedGroupMembershipPK implements Serializable {
      private Goid thisGroupProviderGoid;
      private Goid thisGroupId;
      private Goid memberUserId;
      static final long serialVersionUID = 7320837541956259975L;

      public FederatedGroupMembershipPK() {
      }

      public FederatedGroupMembershipPK(Goid var1, Goid var2, Goid var3) {
         this.thisGroupProviderGoid = var1;
         this.thisGroupId = var2;
         this.memberUserId = var3;
      }

      @Id
      @Column(name = "provider_goid")
      @Type(type = "com.l7tech.server.util.GoidType")
      public Goid getThisGroupProviderGoid() {
         return this.thisGroupProviderGoid;
      }

      public void setThisGroupProviderGoid(Goid var1) {
         this.thisGroupProviderGoid = var1;
      }

      @Id
      @Column(name = "fed_group_goid", nullable = false)
      @Type(type = "com.l7tech.server.util.GoidType")
      public Goid getThisGroupId() {
         return this.thisGroupId;
      }

      public void setThisGroupId(Goid var1) {
         this.thisGroupId = var1;
      }

      @Id
      @Column(name = "fed_user_goid", nullable = false)
      @Type(type = "com.l7tech.server.util.GoidType")
      public Goid getMemberUserId() {
         return this.memberUserId;
      }

      public void setMemberUserId(Goid var1) {
         this.memberUserId = var1;
      }

      @Override
      public boolean equals(Object var1) {
         if (this == var1) {
            return true;
         }

         if (var1 != null && this.getClass() == var1.getClass()) {
            FederatedGroupMembership.FederatedGroupMembershipPK var2 = (FederatedGroupMembership.FederatedGroupMembershipPK)var1;
            if (!this.thisGroupProviderGoid.equals(var2.thisGroupProviderGoid)) {
               return false;
            } else {
               return !this.memberUserId.equals(var2.memberUserId) ? false : this.thisGroupId.equals(var2.thisGroupId);
            }
         } else {
            return false;
         }
      }

      @Override
      public int hashCode() {
         int var1 = this.thisGroupProviderGoid.hashCode();
         var1 = 31 * var1 + this.thisGroupId.hashCode();
         return 31 * var1 + this.memberUserId.hashCode();
      }
   }
}
