package com.l7tech.gateway.common.security.rbac;

import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.Goid;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Table;
import javax.validation.constraints.Size;
import org.hibernate.annotations.Proxy;

@Entity
@Proxy(lazy = false)
@Table(name = "rbac_predicate_entityfolder")
public class EntityFolderAncestryPredicate extends ScopePredicate {
   private String entityId;
   private EntityType entityType;
   static final long serialVersionUID = -1409792390926241682L;

   public EntityFolderAncestryPredicate(Permission var1, EntityType var2, String var3) {
      super(var1);
      this.entityType = var2;
      this.entityId = var3;
   }

   public EntityFolderAncestryPredicate(Permission var1, EntityType var2, Goid var3) {
      super(var1);
      this.entityType = var2;
      this.entityId = Goid.toString(var3);
   }

   @Deprecated
   protected EntityFolderAncestryPredicate() {
   }

   @Override
   public ScopePredicate createAnonymousClone() {
      EntityFolderAncestryPredicate var1 = new EntityFolderAncestryPredicate(null, this.entityType, new Goid(this.entityId));
      var1.setGoid(this.getGoid());
      return var1;
   }

   @Size(max = 255)
   @Column(name = "entity_id", length = 255)
   public String getEntityId() {
      return this.entityId;
   }

   @Column(name = "entity_type", length = 64)
   @Enumerated(EnumType.STRING)
   public EntityType getEntityType() {
      return this.entityType;
   }

   @Deprecated
   protected void setEntityType(EntityType var1) {
      this.entityType = var1;
   }

   @Deprecated
   protected void setEntityId(String var1) {
      this.entityId = var1;
   }

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

      if (var1 == null || this.getClass() != var1.getClass()) {
         return false;
      }

      if (!super.equals(var1)) {
         return false;
      }

      EntityFolderAncestryPredicate var2 = (EntityFolderAncestryPredicate)var1;
      return (this.entityId != null ? this.entityId.equals(var2.entityId) : var2.entityId == null) ? this.entityType == var2.entityType : false;
   }

   public int hashCode() {
      int var1 = super.hashCode();
      var1 = 31 * var1 + (this.entityId != null ? this.entityId.hashCode() : 0);
      return 31 * var1 + (this.entityType != null ? this.entityType.hashCode() : 0);
   }
}
