From 5d3e499fb0fabd3b17dea64b7fca7eda1e4558d8 Mon Sep 17 00:00:00 2001 From: andrecs <12188364+andrecsilva@users.noreply.github.com> Date: Thu, 24 Oct 2024 10:17:18 -0300 Subject: [PATCH] Refactored node position matchers --- .../DefaultNodePositionMatcher.java | 4 +-- .../WithoutScopePositionMatcher.java | 31 ++----------------- 2 files changed, 4 insertions(+), 31 deletions(-) diff --git a/framework/codemodder-base/src/main/java/io/codemodder/remediation/DefaultNodePositionMatcher.java b/framework/codemodder-base/src/main/java/io/codemodder/remediation/DefaultNodePositionMatcher.java index 24595299c..fb10c7960 100644 --- a/framework/codemodder-base/src/main/java/io/codemodder/remediation/DefaultNodePositionMatcher.java +++ b/framework/codemodder-base/src/main/java/io/codemodder/remediation/DefaultNodePositionMatcher.java @@ -4,7 +4,7 @@ import com.github.javaparser.Range; import com.github.javaparser.ast.Node; -final class DefaultNodePositionMatcher implements NodePositionMatcher { +class DefaultNodePositionMatcher implements NodePositionMatcher { @Override public boolean match(final Node node, final int line) { @@ -34,7 +34,7 @@ private boolean inInterval(int number, int upper, int lower) { return number >= upper && number <= lower; } - private Range getRange(final Node node) { + Range getRange(final Node node) { return node.getRange().orElseThrow(); } } diff --git a/framework/codemodder-base/src/main/java/io/codemodder/remediation/WithoutScopePositionMatcher.java b/framework/codemodder-base/src/main/java/io/codemodder/remediation/WithoutScopePositionMatcher.java index 341b07890..c41f54468 100644 --- a/framework/codemodder-base/src/main/java/io/codemodder/remediation/WithoutScopePositionMatcher.java +++ b/framework/codemodder-base/src/main/java/io/codemodder/remediation/WithoutScopePositionMatcher.java @@ -6,37 +6,10 @@ import com.github.javaparser.ast.nodeTypes.NodeWithTraversableScope; /** Removes the range of the node's scope before matching it against a position. */ -public final class WithoutScopePositionMatcher implements NodePositionMatcher { +public final class WithoutScopePositionMatcher extends DefaultNodePositionMatcher { @Override - public boolean match(final Node node, final int line) { - return getRange(node).begin.line == line; - } - - @Override - public boolean match(final Node node, int startLine, int endLine) { - return inInterval(getRange(node).begin.line, startLine, endLine); - } - - @Override - public boolean match(final Node node, int startLine, int endLine, int startColumn) { - return match(node, startLine, endLine) - && getRange(node).begin.compareTo(new Position(startLine, startColumn)) <= 0; - } - - @Override - public boolean match( - final Node node, int startLine, int endLine, int startColumn, int endColumn) { - return getRange(node) - .strictlyContains( - new Range(new Position(startLine, startColumn), new Position(endLine, endColumn))); - } - - private boolean inInterval(int number, int upper, int lower) { - return number >= upper && number <= lower; - } - - private Range getRange(final Node node) { + Range getRange(final Node node) { var originalRange = node.getRange().orElseThrow(); if (node.hasScope()) { var scope = ((NodeWithTraversableScope) node).traverseScope().get();