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.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 var1) {
      this.a = var1;
   }

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

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

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

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

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