package com.airlock.iam.factor.application.configuration.airlock2fa;

import com.airlock.iam.factor.domain.service.airlock2fa.displayname.Airlock2FAAccountDisplayNameProvider;
import com.airlock.iam.factor.domain.service.airlock2fa.displayname.Airlock2FANoAccountDisplayNameProvider;
import com.airlock.iam.plugin.api.annotation.config.Plugin;
import com.airlock.iam.plugin.api.annotation.license.PluginLicenseRestriction;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

@Plugin(description = "Does not provide a display name during user's enrollment for Airlock 2FA.", displayName = "None (Airlock 2FA Account Display Name)")
@PluginLicenseRestriction(moduleAffiliation = "Airlock2FA")
public final class Airlock2FANoDisplayNameProviderConfig implements Airlock2FAUserAccountDisplayNameProviderConfig {
   @Override
   public Airlock2FAAccountDisplayNameProvider logic() {
      return new Airlock2FANoAccountDisplayNameProvider();
   }

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

   @SuppressFBWarnings(justification = "generated code")
   public static class Airlock2FANoDisplayNameProviderConfigBuilder {
      @SuppressFBWarnings(justification = "generated code")
      Airlock2FANoDisplayNameProviderConfigBuilder() {
      }

      @SuppressFBWarnings(justification = "generated code")
      public Airlock2FANoDisplayNameProviderConfig build() {
         return new Airlock2FANoDisplayNameProviderConfig();
      }

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "Airlock2FANoDisplayNameProviderConfig.Airlock2FANoDisplayNameProviderConfigBuilder()";
      }
   }
}
