package com.l7tech.server.extension.provider.sharedstate;

import com.ca.apim.gateway.extension.sharedstate.Configuration;
import com.ca.apim.gateway.extension.sharedstate.SharedExecutorServiceProvider;
import com.ca.apim.gateway.extension.sharedstate.SharedScheduledExecutorService;
import com.ca.apim.gateway.extension.sharedstate.Configuration.Param;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

public class LocalExecutorServiceProvider implements SharedExecutorServiceProvider {
   private final ConcurrentMap<String, SharedScheduledExecutorService> a = new ConcurrentHashMap<>();

   public SharedScheduledExecutorService getScheduledExecutorService(String var1, Configuration var2) {
      return this.a
         .computeIfAbsent(var1, var1x -> new LocalScheduledExecutorService(var1x, Integer.parseInt(var2.get(Param.SCHEDULED_EXECUTOR_CORE_POOL_SIZE))));
   }
}
