package com.airlock.iam.admin.application.service.token.vasco;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public final class VascoLicenseInfo {
   private final long assignedActive;
   private final long assignedInactive;
   private final long unassignedActive;
   private final long unassignedInactive;

   @SuppressFBWarnings(justification = "generated code")
   VascoLicenseInfo(long assignedActive, long assignedInactive, long unassignedActive, long unassignedInactive) {
      this.assignedActive = assignedActive;
      this.assignedInactive = assignedInactive;
      this.unassignedActive = unassignedActive;
      this.unassignedInactive = unassignedInactive;
   }

   @SuppressFBWarnings(justification = "generated code")
   public static VascoLicenseInfo.VascoLicenseInfoBuilder builder() {
      return new VascoLicenseInfo.VascoLicenseInfoBuilder();
   }

   @SuppressFBWarnings(justification = "generated code")
   public long getAssignedActive() {
      return this.assignedActive;
   }

   @SuppressFBWarnings(justification = "generated code")
   public long getAssignedInactive() {
      return this.assignedInactive;
   }

   @SuppressFBWarnings(justification = "generated code")
   public long getUnassignedActive() {
      return this.unassignedActive;
   }

   @SuppressFBWarnings(justification = "generated code")
   public long getUnassignedInactive() {
      return this.unassignedInactive;
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public boolean equals(Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof VascoLicenseInfo other)) {
         return false;
      } else if (this.assignedActive != other.assignedActive) {
         return false;
      } else if (this.assignedInactive != other.assignedInactive) {
         return false;
      } else {
         return this.unassignedActive != other.unassignedActive ? false : this.unassignedInactive == other.unassignedInactive;
      }
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public int hashCode() {
      int PRIME = 59;
      int result = 1;
      long $assignedActive = this.assignedActive;
      result = result * 59 + (int)($assignedActive >>> 32 ^ $assignedActive);
      long $assignedInactive = this.assignedInactive;
      result = result * 59 + (int)($assignedInactive >>> 32 ^ $assignedInactive);
      long $unassignedActive = this.unassignedActive;
      result = result * 59 + (int)($unassignedActive >>> 32 ^ $unassignedActive);
      long $unassignedInactive = this.unassignedInactive;
      return result * 59 + (int)($unassignedInactive >>> 32 ^ $unassignedInactive);
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public String toString() {
      return "VascoLicenseInfo(assignedActive="
         + this.getAssignedActive()
         + ", assignedInactive="
         + this.getAssignedInactive()
         + ", unassignedActive="
         + this.getUnassignedActive()
         + ", unassignedInactive="
         + this.getUnassignedInactive()
         + ")";
   }

   @SuppressFBWarnings(justification = "generated code")
   public static class VascoLicenseInfoBuilder {
      @SuppressFBWarnings(justification = "generated code")
      private long assignedActive;
      @SuppressFBWarnings(justification = "generated code")
      private long assignedInactive;
      @SuppressFBWarnings(justification = "generated code")
      private long unassignedActive;
      @SuppressFBWarnings(justification = "generated code")
      private long unassignedInactive;

      @SuppressFBWarnings(justification = "generated code")
      VascoLicenseInfoBuilder() {
      }

      @SuppressFBWarnings(justification = "generated code")
      public VascoLicenseInfo.VascoLicenseInfoBuilder assignedActive(long assignedActive) {
         this.assignedActive = assignedActive;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public VascoLicenseInfo.VascoLicenseInfoBuilder assignedInactive(long assignedInactive) {
         this.assignedInactive = assignedInactive;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public VascoLicenseInfo.VascoLicenseInfoBuilder unassignedActive(long unassignedActive) {
         this.unassignedActive = unassignedActive;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public VascoLicenseInfo.VascoLicenseInfoBuilder unassignedInactive(long unassignedInactive) {
         this.unassignedInactive = unassignedInactive;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public VascoLicenseInfo build() {
         return new VascoLicenseInfo(this.assignedActive, this.assignedInactive, this.unassignedActive, this.unassignedInactive);
      }

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "VascoLicenseInfo.VascoLicenseInfoBuilder(assignedActive="
            + this.assignedActive
            + ", assignedInactive="
            + this.assignedInactive
            + ", unassignedActive="
            + this.unassignedActive
            + ", unassignedInactive="
            + this.unassignedInactive
            + ")";
      }
   }
}
