package com.airlock.iam.authentication.domain.model.rememberme;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Objects;
import lombok.NonNull;

public final class RememberMeJspSecret {
   private final String rawJwt;

   private RememberMeJspSecret(@NonNull String jwt) throws IllegalArgumentException {
      Objects.requireNonNull(jwt);
      this.rawJwt = jwt;
   }

   public static RememberMeJspSecret fromString(@NonNull String jwt) {
      if (jwt == null) {
         throw new NullPointerException("jwt is marked non-null but is null");
      } else {
         return new RememberMeJspSecret(jwt);
      }
   }

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

   @SuppressFBWarnings(justification = "generated code")
   public String getRawJwt() {
      return this.rawJwt;
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public boolean equals(Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof RememberMeJspSecret other)) {
         return false;
      } else {
         Object this$rawJwt = this.rawJwt;
         Object other$rawJwt = other.rawJwt;
         return this$rawJwt == null ? other$rawJwt == null : this$rawJwt.equals(other$rawJwt);
      }
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public int hashCode() {
      int PRIME = 59;
      int result = 1;
      Object $rawJwt = this.rawJwt;
      return result * 59 + ($rawJwt == null ? 43 : $rawJwt.hashCode());
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public String toString() {
      return "RememberMeJspSecret(rawJwt=" + this.getRawJwt() + ")";
   }

   @SuppressFBWarnings(justification = "generated code")
   public static class RememberMeJspSecretBuilder {
      @SuppressFBWarnings(justification = "generated code")
      private String rawJwt;

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

      @SuppressFBWarnings(justification = "generated code")
      public RememberMeJspSecret.RememberMeJspSecretBuilder rawJwt(String rawJwt) {
         this.rawJwt = rawJwt;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public RememberMeJspSecret build() {
         return new RememberMeJspSecret(this.rawJwt);
      }

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "RememberMeJspSecret.RememberMeJspSecretBuilder(rawJwt=" + this.rawJwt + ")";
      }
   }
}
