@Override
public PackageDiscoveryResult execute(String rulesPath, String inputPath)
{
final Map<String, Integer> classes = findClasses(Paths.get(inputPath), Paths.get(inputPath));
packageNameMappingRegistry.loadPackageMappings(Paths.get(rulesPath));
PackageFrequencyTrie frequencyTrie = new PackageFrequencyTrie();
for (String qualifiedName : classes.keySet())
{
frequencyTrie.addClass(qualifiedName);
}
Map<String, Integer> knownPackagesAndClassCount = new TreeMap<>(new PackageComparator());
Map<String, Integer> unknownPackagesAndClassCount = new TreeMap<>(new PackageComparator());
Map<String, String> knownPackages = new TreeMap<>(new PackageComparator());
this.qualifyDiscoveredPackages(knownPackages, frequencyTrie, knownPackagesAndClassCount, unknownPackagesAndClassCount);
return new PackageDiscoveryResult(knownPackagesAndClassCount, unknownPackagesAndClassCount);
}