package com.airlock.iam.oauth2.domain.model.acr;

import com.airlock.iam.flow.api.domain.model.flow.ApplicationId;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import lombok.NonNull;

public final class AcrToApplicationId {
   @NonNull
   private final ApplicationId authenticationFlowId;
   @NonNull
   private final OpenIdConnectAcrValue acr;

   @SuppressFBWarnings(justification = "generated code")
   public AcrToApplicationId(@NonNull ApplicationId authenticationFlowId, @NonNull OpenIdConnectAcrValue acr) {
      if (authenticationFlowId == null) {
         throw new NullPointerException("authenticationFlowId is marked non-null but is null");
      }

      if (acr == null) {
         throw new NullPointerException("acr is marked non-null but is null");
      }

      this.authenticationFlowId = authenticationFlowId;
      this.acr = acr;
   }

   @NonNull
   @SuppressFBWarnings(justification = "generated code")
   public ApplicationId getAuthenticationFlowId() {
      return this.authenticationFlowId;
   }

   @NonNull
   @SuppressFBWarnings(justification = "generated code")
   public OpenIdConnectAcrValue getAcr() {
      return this.acr;
   }
}
