/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.policy.assertion.ext.CertificateFinder
 *  com.l7tech.policy.assertion.ext.ServiceFinder
 *  com.l7tech.policy.assertion.ext.VariableServices
 *  com.l7tech.policy.assertion.ext.password.SecurePasswordServices
 *  com.l7tech.policy.assertion.ext.security.SignerServices
 *  com.l7tech.policy.assertion.ext.store.KeyValueStoreServices
 */
package com.l7tech.server.policy;

import com.l7tech.policy.assertion.ext.CertificateFinder;
import com.l7tech.policy.assertion.ext.ServiceFinder;
import com.l7tech.policy.assertion.ext.VariableServices;
import com.l7tech.policy.assertion.ext.password.SecurePasswordServices;
import com.l7tech.policy.assertion.ext.security.SignerServices;
import com.l7tech.policy.assertion.ext.store.KeyValueStoreServices;
import com.l7tech.server.policy.CertificateFinderImpl;
import com.l7tech.server.policy.SecurePasswordServicesImpl;
import com.l7tech.server.policy.VariableServicesImpl;
import com.l7tech.server.security.SignerServicesImpl;
import com.l7tech.server.store.KeyValueStoreServicesImpl;

public class ServiceFinderImpl
implements ServiceFinder {
    private CertificateFinderImpl a;
    private VariableServicesImpl b;
    private SecurePasswordServicesImpl c;
    private KeyValueStoreServicesImpl d;
    private SignerServicesImpl e;

    public void setCertificateFinderImpl(CertificateFinderImpl certificateFinderImpl) {
        this.a = certificateFinderImpl;
    }

    public void setVariableServicesImpl(VariableServicesImpl variableServicesImpl) {
        this.b = variableServicesImpl;
    }

    public void setSecurePasswordServicesImpl(SecurePasswordServicesImpl securePasswordServicesImpl) {
        this.c = securePasswordServicesImpl;
    }

    public void setKeyValueStoreImpl(KeyValueStoreServicesImpl keyValueStoreServicesImpl) {
        this.d = keyValueStoreServicesImpl;
    }

    public void setSignerServicesImpl(SignerServicesImpl signerServicesImpl) {
        this.e = signerServicesImpl;
    }

    public <T> T lookupService(Class<T> clazz) {
        if (CertificateFinder.class.equals(clazz)) {
            return (T)this.a;
        }
        if (VariableServices.class.equals(clazz)) {
            return (T)this.b;
        }
        if (SecurePasswordServices.class.equals(clazz)) {
            return (T)this.c;
        }
        if (KeyValueStoreServices.class.equals(clazz)) {
            return (T)this.d;
        }
        if (SignerServices.class.equals(clazz)) {
            return (T)this.e;
        }
        return null;
    }
}

