package com.airlock.iam.flow.shared.application.configuration.valueprovider;

import com.airlock.iam.common.application.configuration.event.EventReadyValueMapProviderConfig;
import com.airlock.iam.flow.api.application.configuration.valueprovider.ValueMapProviderConfig;
import com.airlock.iam.plugin.api.annotation.config.Plugin;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

@Plugin(
   description = "<p>Provides all context data of the current user. The keys of the context data items are provided as defined in the Loginapp's user store.</p><p>The \"username\" is always part of the map, even if it is not explicitly part of the context data.</p>",
   displayName = "Context Data Map"
)
public class ContextDataValueMapProviderConfig implements ValueMapProviderConfig, EventReadyValueMapProviderConfig {
   public static final String CONTEXT_DATA_MAP_PROVIDER_DISPLAY_NAME = "Context Data Map";

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

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

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

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