RepositoryConfigurationSourceWrapper.java
package org.codefilarete.stalactite.spring.repository.config;
import java.util.Optional;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.core.type.filter.TypeFilter;
import org.springframework.data.repository.config.BootstrapMode;
import org.springframework.data.repository.config.ImplementationDetectionConfiguration;
import org.springframework.data.repository.config.RepositoryConfigurationSource;
import org.springframework.data.util.Streamable;
/**
* A simple wrapper of {@link RepositoryConfigurationSource} that delegates its invocations to a delegate.
* Made to be overridden in order that we understand better which behavior is overridden by subclass. Kind of design stuff.
*
* @param <T>
* @author Guillaume Mary
*/
class RepositoryConfigurationSourceWrapper<T extends RepositoryConfigurationSource> implements RepositoryConfigurationSource {
private final T delegate;
public RepositoryConfigurationSourceWrapper(T delegate) {
this.delegate = delegate;
}
@Override
public Object getSource() {
return delegate.getSource();
}
@Override
public Streamable<String> getBasePackages() {
return delegate.getBasePackages();
}
@Override
public Optional<Object> getQueryLookupStrategyKey() {
return delegate.getQueryLookupStrategyKey();
}
@Override
public Optional<String> getRepositoryImplementationPostfix() {
return delegate.getRepositoryImplementationPostfix();
}
@Override
public Optional<String> getNamedQueryLocation() {
return delegate.getNamedQueryLocation();
}
@Override
public Optional<String> getRepositoryBaseClassName() {
return delegate.getRepositoryBaseClassName();
}
@Override
public Optional<String> getRepositoryFactoryBeanClassName() {
return delegate.getRepositoryFactoryBeanClassName();
}
@Override
public Streamable<BeanDefinition> getCandidates(ResourceLoader loader) {
return delegate.getCandidates(loader);
}
@Override
public Optional<String> getAttribute(String name) {
return delegate.getAttribute(name);
}
@Override
public <T> Optional<T> getAttribute(String name, Class<T> type) {
return delegate.getAttribute(name, type);
}
@Override
public boolean usesExplicitFilters() {
return delegate.usesExplicitFilters();
}
@Override
public Streamable<TypeFilter> getExcludeFilters() {
return delegate.getExcludeFilters();
}
@Override
public String generateBeanName(BeanDefinition beanDefinition) {
return delegate.generateBeanName(beanDefinition);
}
@Override
public ImplementationDetectionConfiguration toImplementationDetectionConfiguration(MetadataReaderFactory factory) {
return delegate.toImplementationDetectionConfiguration(factory);
}
@Override
public BootstrapMode getBootstrapMode() {
return delegate.getBootstrapMode();
}
@Override
public String getResourceDescription() {
return delegate.getResourceDescription();
}
}