package org.infinispan.persistence.factory;
import org.infinispan.commons.configuration.ConfigurationFor;
import org.infinispan.configuration.cache.CustomStoreConfiguration;
import org.infinispan.configuration.cache.StoreConfiguration;
import org.infinispan.util.logging.Log;
public class ConfigurationForClassExtractor {
public static Class getClassBasedOnConfigurationAnnotation(StoreConfiguration cfg, Log logger) {
ConfigurationFor annotation = cfg.getClass().getAnnotation(ConfigurationFor.class);
Class classAnnotation = null;
if (annotation == null) {
if (cfg instanceof CustomStoreConfiguration) {
classAnnotation = ((CustomStoreConfiguration)cfg).customStoreClass();
}
} else {
classAnnotation = annotation.value();
}
if (classAnnotation == null) {
throw logger.loaderConfigurationDoesNotSpecifyLoaderClass(cfg.getClass().getName());
}
return classAnnotation;
}
}