
buildSrc.src.main.java.gradle.advice.CountDirectoryScans Maven / Gradle / Ivy
package gradle.advice;
import net.bytebuddy.asm.Advice;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CountDirectoryScans {
public static boolean TRACK_LOCATIONS = false;
public static Map COUNTS = new HashMap();
public static Map> LOCATIONS = new HashMap>();
@Advice.OnMethodEnter
public synchronized static void interceptVisitFrom(@Advice.Argument(1) File fileOrDirectory) {
File key = fileOrDirectory.getAbsoluteFile();
Integer count = COUNTS.get(key);
COUNTS.put(key, count != null ? count+1 : 1);
if(TRACK_LOCATIONS) {
List locations = LOCATIONS.get(key);
if(locations == null) {
locations = new ArrayList();
LOCATIONS.put(key, locations);
}
locations.add(new Exception());
}
}
public synchronized static void reset() {
COUNTS.clear();
LOCATIONS.clear();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy