package com.l7tech.server.service;

import com.l7tech.gateway.common.service.ServiceTemplate;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListSet;

public class ServiceTemplateManagerImpl implements ServiceTemplateManager {
   private final Set<ServiceTemplate> a = new ConcurrentSkipListSet<>();
   private final Map<String, ServiceTemplate> b = new ConcurrentHashMap<>();

   @Override
   public Set<ServiceTemplate> findAll() {
      return Collections.unmodifiableSet(new HashSet<>(this.a));
   }

   @Override
   public ServiceTemplate findByAutoProvisionName(String var1) {
      return this.b.get(var1);
   }

   @Override
   public void register(ServiceTemplate var1) {
      this.a.add(var1);
   }

   @Override
   public void register(ServiceTemplate var1, String var2) {
      this.a.add(var1);
      this.b.put(var2, var1);
   }

   @Override
   public void unregister(ServiceTemplate var1) {
      this.a.remove(var1);
      this.b.values().remove(var1);
   }
}
