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

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

public final class DefaultOAuth2CodeGrantRequestHandlerSettings implements OAuth2CodeGrantRequestHandlerSettings {
   private final boolean isIntegrationLogEnabled;
   private final boolean isRequireRedirectUri;

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

   @SuppressFBWarnings(justification = "generated code")
   private DefaultOAuth2CodeGrantRequestHandlerSettings(boolean isIntegrationLogEnabled, boolean isRequireRedirectUri) {
      this.isIntegrationLogEnabled = isIntegrationLogEnabled;
      this.isRequireRedirectUri = isRequireRedirectUri;
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public boolean isIntegrationLogEnabled() {
      return this.isIntegrationLogEnabled;
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public boolean isRequireRedirectUri() {
      return this.isRequireRedirectUri;
   }

   @SuppressFBWarnings(justification = "generated code")
   public static class DefaultOAuth2CodeGrantRequestHandlerSettingsBuilder {
      @SuppressFBWarnings(justification = "generated code")
      private boolean isIntegrationLogEnabled;
      @SuppressFBWarnings(justification = "generated code")
      private boolean isRequireRedirectUri;

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

      @SuppressFBWarnings(justification = "generated code")
      public DefaultOAuth2CodeGrantRequestHandlerSettings.DefaultOAuth2CodeGrantRequestHandlerSettingsBuilder isIntegrationLogEnabled(
         boolean isIntegrationLogEnabled
      ) {
         this.isIntegrationLogEnabled = isIntegrationLogEnabled;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public DefaultOAuth2CodeGrantRequestHandlerSettings.DefaultOAuth2CodeGrantRequestHandlerSettingsBuilder isRequireRedirectUri(boolean isRequireRedirectUri) {
         this.isRequireRedirectUri = isRequireRedirectUri;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public DefaultOAuth2CodeGrantRequestHandlerSettings build() {
         return new DefaultOAuth2CodeGrantRequestHandlerSettings(this.isIntegrationLogEnabled, this.isRequireRedirectUri);
      }

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "DefaultOAuth2CodeGrantRequestHandlerSettings.DefaultOAuth2CodeGrantRequestHandlerSettingsBuilder(isIntegrationLogEnabled="
            + this.isIntegrationLogEnabled
            + ", isRequireRedirectUri="
            + this.isRequireRedirectUri
            + ")";
      }
   }
}
