package com.airlock.iam.oauth2.application.service.revocation;

import com.airlock.iam.oauth2.api.domain.model.clientauthentication.ClientAuthenticationMethod;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import lombok.NonNull;

public final class OAuth2TokenRevocationSettings {
   @NonNull
   private final ClientAuthenticationMethod clientAuthenticationMethod;

   public static OAuth2TokenRevocationSettings oAuth2TokenRevocationSettings(ClientAuthenticationMethod clientAuthenticationMethod) {
      return new OAuth2TokenRevocationSettings(clientAuthenticationMethod);
   }

   @SuppressFBWarnings(justification = "generated code")
   private OAuth2TokenRevocationSettings(@NonNull ClientAuthenticationMethod clientAuthenticationMethod) {
      if (clientAuthenticationMethod == null) {
         throw new NullPointerException("clientAuthenticationMethod is marked non-null but is null");
      }

      this.clientAuthenticationMethod = clientAuthenticationMethod;
   }

   @NonNull
   @SuppressFBWarnings(justification = "generated code")
   public ClientAuthenticationMethod clientAuthenticationMethod() {
      return this.clientAuthenticationMethod;
   }
}
