package com.airlock.iam.admin.infrastructure.service.ume;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import jakarta.inject.Inject;
import java.util.Optional;

public class UserManagementExtensionCache {
   private Optional<UserManagementExtensionResourceContent> cachedContent = Optional.empty();
   private UserManagementExtensionCache.CacheState cacheState = UserManagementExtensionCache.CacheState.NEW;

   public void init(Optional<UserManagementExtensionResourceContent> content) {
      if (this.cacheState.equals(UserManagementExtensionCache.CacheState.LOADED)) {
         throw new IllegalStateException();
      }

      this.cachedContent = content;
      this.cacheState = UserManagementExtensionCache.CacheState.LOADED;
   }

   public Optional<UserManagementExtensionResourceContent> getResource() {
      return this.cachedContent;
   }

   @SuppressFBWarnings(justification = "generated code")
   public UserManagementExtensionCache.CacheState getCacheState() {
      return this.cacheState;
   }

   public enum CacheState {
      NEW,
      LOADED;
   }
}
