package com.airlock.iam.flow.shared.domain.model.valueprovider;

import com.airlock.iam.common.domain.model.valueprovider.EntryFromMapValueProviderSettings;
import jakarta.inject.Provider;

abstract class EntryFromMapValueProvider {
   private final Provider<ValueMapProviderList> valueMapProviderList;
   private final Provider<EntryFromMapValueProviderSettings> settings;

   protected EntryFromMapValueProvider(Provider<ValueMapProviderList> valueMapProviderList, Provider<EntryFromMapValueProviderSettings> settings) {
      this.valueMapProviderList = valueMapProviderList;
      this.settings = settings;
   }

   protected Object getValueMapEntry() {
      return ((ValueMapProviderList)this.valueMapProviderList.get()).provideValueMap().get(((EntryFromMapValueProviderSettings)this.settings.get()).key());
   }

   protected String getEntryKey() {
      return ((EntryFromMapValueProviderSettings)this.settings.get()).key();
   }

   abstract Object getValue();
}
