Skip to content

Commit

Permalink
Enable Extract Method detection
Browse files Browse the repository at this point in the history
  • Loading branch information
tsantalis committed Dec 10, 2024
1 parent 030a40c commit d42fe58
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/main/java/gr/uom/java/xmi/decomposition/AbstractCall.java
Original file line number Diff line number Diff line change
Expand Up @@ -1063,13 +1063,34 @@ private int argumentIsReturned(String statement) {
return -1;
}

private int argumentIsThrown(String statement) {
if(statement.startsWith(JAVA.THROW_SPACE)) {
int index = 0;
for(String argument : arguments()) {
if(argument.equals("true") || argument.equals("false") || argument.equals("null")) {
return -1;
}
if(equalsIgnoringExtraParenthesis(argument, statement.substring(JAVA.THROW_SPACE.length(), statement.length()-JAVA.STATEMENT_TERMINATION.length()))) {
return index;
}
index++;
}
}
return -1;
}

public Replacement makeReplacementForReturnedArgument(String statement) {
int index = -1;
if((index = argumentIsReturned(statement)) != -1 && ((arguments().size() <= 2 && (index == 0 || this.getName().equals("assertThrows"))) || (statement.contains(" ? ") && statement.contains(" : ")))) {
String arg = statement.substring(JAVA.RETURN_SPACE.length(), statement.length()-JAVA.STATEMENT_TERMINATION.length());
return new Replacement(arguments().get(index), arg,
ReplacementType.ARGUMENT_REPLACED_WITH_RETURN_EXPRESSION);
}
else if((index = argumentIsThrown(statement)) != -1 && ((arguments().size() <= 2 && (index == 0 || this.getName().equals("assertThrows"))) || (statement.contains(" ? ") && statement.contains(" : ")))) {
String arg = statement.substring(JAVA.THROW_SPACE.length(), statement.length()-JAVA.STATEMENT_TERMINATION.length());
return new Replacement(arguments().get(index), arg,
ReplacementType.ARGUMENT_REPLACED_WITH_THROW_EXPRESSION);
}
else if((index = argumentIsStatement(statement)) != -1 && ((arguments().size() <= 2 && (index == 0 || this.getName().equals("assertThrows"))) || (statement.contains(" ? ") && statement.contains(" : ")))) {
String arg = statement.substring(0, statement.length()-JAVA.STATEMENT_TERMINATION.length());
return new Replacement(arguments().get(index), arg,
Expand All @@ -1089,6 +1110,11 @@ public Replacement makeReplacementForWrappedCall(String statement) {
return new Replacement(arg, arguments().get(index),
ReplacementType.ARGUMENT_REPLACED_WITH_RETURN_EXPRESSION);
}
else if((index = argumentIsThrown(statement)) != -1 && ((arguments().size() <= 2 && (index == 0 || this.getName().equals("assertThrows"))) || (statement.contains(" ? ") && statement.contains(" : ")))) {
String arg = statement.substring(JAVA.THROW_SPACE.length(), statement.length()-JAVA.STATEMENT_TERMINATION.length());
return new Replacement(arg, arguments().get(index),
ReplacementType.ARGUMENT_REPLACED_WITH_THROW_EXPRESSION);
}
else if((index = argumentIsStatement(statement)) != -1 && ((arguments().size() <= 2 && (index == 0 || this.getName().equals("assertThrows"))) || (statement.contains(" ? ") && statement.contains(" : ")))) {
String arg = statement.substring(0, statement.length()-JAVA.STATEMENT_TERMINATION.length());
return new Replacement(arg, arguments().get(index),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ public enum ReplacementType {
ARGUMENT_REPLACED_WITH_VARIABLE,
ARGUMENT_REPLACED_WITH_METHOD_INVOCATION,
ARGUMENT_REPLACED_WITH_RETURN_EXPRESSION,
ARGUMENT_REPLACED_WITH_THROW_EXPRESSION,
ARGUMENT_REPLACED_WITH_STATEMENT,
ARGUMENT_REPLACED_WITH_EXPRESSION,
ARGUMENT_REPLACED_WITH_RIGHT_HAND_SIDE_OF_ASSIGNMENT_EXPRESSION,
Expand Down

0 comments on commit d42fe58

Please sign in to comment.