package com.airlock.iam.common.application.configuration.valueprovider;

import com.airlock.iam.common.api.application.configuration.valueprovider.BooleanValueProviderConfig;
import com.airlock.iam.plugin.api.annotation.config.Plugin;
import com.airlock.iam.plugin.api.annotation.property.BooleanProperty;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

@Plugin(description = "Defines a static boolean value to be provided.", displayName = "Static Boolean Value Provider")
public final class BooleanStaticValueProviderConfig implements BooleanValueProviderConfig {
   @BooleanProperty(description = "The value to be provided. If the checkox is ticked, 'true' is provided. Otherwise, 'false' is provided.", optional = false)
   private boolean value;

   public boolean isValue() {
      return this.value;
   }

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

   @SuppressFBWarnings(justification = "generated code")
   public BooleanStaticValueProviderConfig() {
   }

   @SuppressFBWarnings(justification = "generated code")
   public BooleanStaticValueProviderConfig(boolean value) {
      this.value = value;
   }

   @SuppressFBWarnings(justification = "generated code")
   public static class BooleanStaticValueProviderConfigBuilder {
      @SuppressFBWarnings(justification = "generated code")
      private boolean value;

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

      @SuppressFBWarnings(justification = "generated code")
      public BooleanStaticValueProviderConfig.BooleanStaticValueProviderConfigBuilder value(boolean value) {
         this.value = value;
         return this;
      }

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

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "BooleanStaticValueProviderConfig.BooleanStaticValueProviderConfigBuilder(value=" + this.value + ")";
      }
   }
}
