
de.is24.deadcode4j.DeadCodeComputer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of deadcode4j-maven-plugin Show documentation
Show all versions of deadcode4j-maven-plugin Show documentation
Finds unused classes of a project
package de.is24.deadcode4j;
import javax.annotation.Nonnull;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Sets.newHashSet;
/**
* The DeadCodeComputer
computes the {@link DeadCode} based on {@link AnalyzedCode}.
*
* @since 2.0.0
*/
public class DeadCodeComputer {
@Nonnull
public DeadCode computeDeadCode(@Nonnull AnalyzedCode analyzedCode) {
Collection deadClasses = determineDeadClasses(analyzedCode);
return new DeadCode(analyzedCode.getStagesWithExceptions(), analyzedCode.getAnalyzedClasses(), deadClasses);
}
@Nonnull
private Collection determineDeadClasses(@Nonnull AnalyzedCode analyzedCode) {
Set classesInUse = newHashSet();
for (Iterable usedClasses : analyzedCode.getCodeDependencies().values()) {
for (String clazz : usedClasses) {
classesInUse.add(clazz);
}
}
List deadClasses = newArrayList(analyzedCode.getAnalyzedClasses());
deadClasses.removeAll(classesInUse);
return deadClasses;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy