package org.openstack.atlas.api.repository;
import org.openstack.atlas.docs.loadbalancers.api.v1.*;
import org.openstack.atlas.api.validation.validators.*;
import java.util.HashMap;
import java.util.Map;
public final class ValidatorRepository {
private static final Map<Class, ResourceValidator> classKeyedValidatorMap = new HashMap<Class, ResourceValidator>();
public static <R> ResourceValidator<R> getValidatorFor(Class<R> classOfObjectToValidate) {
classKeyedValidatorMap.put(LoadBalancer.class, new LoadBalancerValidator());
classKeyedValidatorMap.put(AccessList.class, new AccessListValidator());
classKeyedValidatorMap.put(HealthMonitor.class, new HealthMonitorValidator());
classKeyedValidatorMap.put(NetworkItem.class, new NetworkItemValidator());
classKeyedValidatorMap.put(Meta.class, new MetaValidator());
classKeyedValidatorMap.put(Metadata.class, new MetadataValidator());
classKeyedValidatorMap.put(Nodes.class, new NodesValidator());
classKeyedValidatorMap.put(Node.class, new NodeValidator());
classKeyedValidatorMap.put(SessionPersistence.class, new SessionPersistenceValidator());
classKeyedValidatorMap.put(VirtualIps.class, new VirtualIpsValidator());
classKeyedValidatorMap.put(VirtualIp.class, new VirtualIpValidator());
classKeyedValidatorMap.put(ConnectionThrottle.class, new ConnectionThrottleValidator());
classKeyedValidatorMap.put(ConnectionLogging.class, new ConnectionLoggingValidator());
classKeyedValidatorMap.put(ContentCaching.class, new ContentCachingValidator());
classKeyedValidatorMap.put(SslTermination.class, new SslTerminationValidator());
classKeyedValidatorMap.put(CertificateMapping.class, new CertificateMappingValidator());
if (!classKeyedValidatorMap.containsKey(classOfObjectToValidate)) {
throw new NullPointerException(String.format("No Validator registered in repository for Class: %s", classOfObjectToValidate.getName()));
}
return classKeyedValidatorMap.get(classOfObjectToValidate);
}
}