builder: Clean up Configuration

This commit is contained in:
Paul Campbell 2018-03-11 08:51:03 +00:00
parent d59cb7b879
commit 359d15b78f

View file

@ -21,15 +21,12 @@
package net.kemitix.checkstyle.ruleset.builder; package net.kemitix.checkstyle.ruleset.builder;
import com.google.common.reflect.ClassPath;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.util.AbstractMap; import java.util.AbstractMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -41,24 +38,6 @@ import java.util.stream.Stream;
@Configuration @Configuration
public class BuilderConfiguration { public class BuilderConfiguration {
/**
* Create the ClassPath used to scan packages.
*
* @return the ClassPath
*
* @throws IOException if there is an error
* @param classLoader
*/
@Bean
public ClassPath classPath(final ClassLoader classLoader) throws IOException {
return ClassPath.from(classLoader);
}
@Bean
public ClassLoader classLoader() {
return BuilderConfiguration.class.getClassLoader();
}
/** /**
* A Map of rules for each RuleSource. * A Map of rules for each RuleSource.
* *
@ -69,24 +48,16 @@ public class BuilderConfiguration {
@Bean @Bean
public Map<RuleSource, List<String>> checkClasses(final PackageScanner packageScanner) { public Map<RuleSource, List<String>> checkClasses(final PackageScanner packageScanner) {
return Stream.of(RuleSource.values()) return Stream.of(RuleSource.values())
.map(toRuleSourceEntry(packageScanner)) .map(source -> entry(source, packageScanner.apply(source)
.collect(Collectors.toList())))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
} }
private static Function<RuleSource, AbstractMap.SimpleEntry<RuleSource, List<String>>> toRuleSourceEntry( private static AbstractMap.SimpleEntry<RuleSource, List<String>> entry(
final PackageScanner packageScanner final RuleSource key,
final List<String> value
) { ) {
return source -> new AbstractMap.SimpleEntry<>( return new AbstractMap.SimpleEntry<>(key, value);
source,
classesInSource(source, packageScanner)
);
} }
private static List<String> classesInSource(
final RuleSource source,
final PackageScanner packageScanner
) {
return packageScanner.apply(source)
.collect(Collectors.toList());
}
} }