Loading sdg-cli/src/main/java/es/upv/mist/slicing/cli/Slicer.java +26 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import java.io.PrintWriter; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; public class Slicer { protected static final String HELP_HEADER = "Java SDG Slicer: extract a slice from a Java program. At least" + Loading Loading @@ -217,8 +218,13 @@ public class Slicer { // Build the SDG NodeList<CompilationUnit> units = new NodeList<>(); try { for (File directory : dirIncludeSet) units.add(StaticJavaParser.parse(directory)); for (File file : dirIncludeSet) { if (file.isDirectory()) for (File f : (Iterable<File>) findAllJavaFiles(file)::iterator) units.add(StaticJavaParser.parse(f)); else units.add(StaticJavaParser.parse(file)); } CompilationUnit scUnit = StaticJavaParser.parse(scFile); if (!units.contains(scUnit)) units.add(scUnit); Loading Loading @@ -258,6 +264,24 @@ public class Slicer { } } protected Stream<File> findAllJavaFiles(File directory) { Stream.Builder<File> builder = Stream.builder(); findAllJavaFiles(directory, builder); return builder.build(); } protected void findAllJavaFiles(File directory, Stream.Builder<File> builder) { File[] files = directory.listFiles(); if (files == null) return; for (File f : files) { if (f.isDirectory()) findAllJavaFiles(f, builder); else if (f.getName().endsWith(".java")) builder.add(f); } } protected String getDisclaimer(CompilationUnit.Storage s) { return String.format("\n\tThis file was automatically generated as part of a slice with criterion" + "\n\tfile: %s, line: %d, variable(s): %s\n\tOriginal file: %s\n", Loading Loading
sdg-cli/src/main/java/es/upv/mist/slicing/cli/Slicer.java +26 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import java.io.PrintWriter; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; public class Slicer { protected static final String HELP_HEADER = "Java SDG Slicer: extract a slice from a Java program. At least" + Loading Loading @@ -217,8 +218,13 @@ public class Slicer { // Build the SDG NodeList<CompilationUnit> units = new NodeList<>(); try { for (File directory : dirIncludeSet) units.add(StaticJavaParser.parse(directory)); for (File file : dirIncludeSet) { if (file.isDirectory()) for (File f : (Iterable<File>) findAllJavaFiles(file)::iterator) units.add(StaticJavaParser.parse(f)); else units.add(StaticJavaParser.parse(file)); } CompilationUnit scUnit = StaticJavaParser.parse(scFile); if (!units.contains(scUnit)) units.add(scUnit); Loading Loading @@ -258,6 +264,24 @@ public class Slicer { } } protected Stream<File> findAllJavaFiles(File directory) { Stream.Builder<File> builder = Stream.builder(); findAllJavaFiles(directory, builder); return builder.build(); } protected void findAllJavaFiles(File directory, Stream.Builder<File> builder) { File[] files = directory.listFiles(); if (files == null) return; for (File f : files) { if (f.isDirectory()) findAllJavaFiles(f, builder); else if (f.getName().endsWith(".java")) builder.add(f); } } protected String getDisclaimer(CompilationUnit.Storage s) { return String.format("\n\tThis file was automatically generated as part of a slice with criterion" + "\n\tfile: %s, line: %d, variable(s): %s\n\tOriginal file: %s\n", Loading