/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.service.ServiceTemplate
 */
package com.l7tech.server.service;

import com.l7tech.gateway.common.service.ServiceTemplate;
import com.l7tech.server.service.ServiceTemplateManager;
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<ServiceTemplate>();
    private final Map<String, ServiceTemplate> b = new ConcurrentHashMap<String, ServiceTemplate>();

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

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

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

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

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

