package com.l7tech.objectmodel.imp;

import com.l7tech.objectmodel.NameableEntity;
import com.l7tech.security.rbac.RbacAttribute;
import jakarta.persistence.Column;
import jakarta.persistence.MappedSuperclass;
import jakarta.persistence.Version;
import jakarta.xml.bind.annotation.XmlElement;

@MappedSuperclass
public abstract class NamedEntityNullableImp extends PersistentEntityImp implements NameableEntity {
   protected String _name;
   static final long serialVersionUID = -970188032140119564L;

   @Version
   @Column(name = "version")
   @Override
   public int getVersion() {
      return super.getVersion();
   }

   @RbacAttribute
   @Column(name = "name", nullable = true, length = 128)
   @XmlElement(namespace = "http://ns.l7tech.com/secureSpan/1.0/core")
   @Override
   public String getName() {
      return this._name;
   }

   @Override
   public void setName(String var1) {
      this.checkLocked();
      this._name = var1;
   }

   @Override
   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;
      }

      NamedEntityNullableImp var2 = (NamedEntityNullableImp)var1;
      return this._name != null ? this._name.equals(var2._name) : var2._name == null;
   }

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