JavaFileExtension.java 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. package diff;
  2. import org.incava.diffj.element.Differences;
  3. import org.incava.diffj.io.JavaFile;
  4. import org.incava.diffj.lang.DiffJException;
  5. import java.util.HashSet;
  6. import java.util.Set;
  7. public class JavaFileExtension extends JavaFile {
  8. public JavaFileExtension(String contents) throws DiffJException {
  9. super(null, "label", contents, "1.8");
  10. }
  11. public CompilationUnitExtension compile() throws DiffJException {
  12. return new CompilationUnitExtension(super.compile().getAstCompUnit());
  13. }
  14. public Set<Integer> affectedLineNumbers(JavaFileExtension fileToCompare) throws DiffJException {
  15. CompilationUnitExtension fromCompUnit = compile();
  16. CompilationUnitExtension toCompUnit = fileToCompare.compile();
  17. Differences differences = fromCompUnit.diff(toCompUnit);
  18. Set<Integer> affectedLines = new HashSet<>();
  19. differences.getFileDiffs().forEach(it -> {
  20. affectedLines.add(it.getSecondLocation().getStart().getLine());
  21. affectedLines.add(it.getSecondLocation().getEnd().getLine());
  22. }
  23. );
  24. return affectedLines;
  25. }
  26. }