Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -93,20 +93,20 @@ void quickfixDateCreation() {

void quickfixDateManipulation(LocalDate date, DayOfWeek day, Month month) {
if (date.getMonthValue() == 9) { // Noncompliant [[quickfixes=qf6]]
// fix@qf6 {{Replace with date.getMonth() == Month.SEPTEMBER.}}
// edit@qf6 [[sc=9;ec=34]]{{date.getMonth() == Month.SEPTEMBER}}
// fix@qf6 {{Replace with date.getMonth().equals(Month.SEPTEMBER).}}
// edit@qf6 [[sc=9;ec=34]]{{date.getMonth().equals(Month.SEPTEMBER)}}
}
if (day.getValue() != 3) { // Noncompliant [[quickfixes=qf7]]
// fix@qf7 {{Replace with day != DayOfWeek.WEDNESDAY.}}
// edit@qf7 [[sc=9;ec=28]]{{day != DayOfWeek.WEDNESDAY}}
// fix@qf7 {{Replace with !day.equals(DayOfWeek.WEDNESDAY).}}
// edit@qf7 [[sc=9;ec=28]]{{!day.equals(DayOfWeek.WEDNESDAY)}}
}
if (3 == month.getValue()) { // Noncompliant [[quickfixes=qf8]]
// fix@qf8 {{Replace with Month.MARCH == month.}}
// edit@qf8 [[sc=9;ec=30]]{{Month.MARCH == month}}
// fix@qf8 {{Replace with Month.MARCH.equals(month).}}
// edit@qf8 [[sc=9;ec=30]]{{Month.MARCH.equals(month)}}
}
boolean isSeptember = (LocalDate.now().getMonthValue() == 9); // Noncompliant [[quickfixes=qf9]]
// fix@qf9 {{Replace with LocalDate.now().getMonth() == Month.SEPTEMBER.}}
// edit@qf9 [[sc=28;ec=64]]{{LocalDate.now().getMonth() == Month.SEPTEMBER}}
boolean isSeptember = (LocalDate.now().getMonthValue() != 9); // Noncompliant [[quickfixes=qf9]]
// fix@qf9 {{Replace with !LocalDate.now().getMonth().equals(Month.SEPTEMBER).}}
// edit@qf9 [[sc=28;ec=64]]{{!LocalDate.now().getMonth().equals(Month.SEPTEMBER)}}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,9 @@ public class DateEnumsCheck extends AbstractMethodDetection implements JavaVersi

private static final String MONTH_ISSUE_MESSAGE = "Use a \"java.time.Month\" enum constant instead of this int literal.";
private static final String DAY_ISSUE_MESSAGE = "Use a \"java.time.DayOfWeek\" enum constant instead of this int literal.";

private QuickFixHelper.ImportSupplier importSupplier;


@Override
public void setContext(JavaFileScannerContext context) {
super.setContext(context);
Expand Down Expand Up @@ -233,17 +233,17 @@ private String getMonthValueReplacement(MethodInvocationTree methodInvocationSid
ExpressionTree receiver = ((MemberSelectExpressionTree) methodInvocationSide.methodSelect()).expression();
String receiverText = QuickFixHelper.contentForTree(receiver, context);
String enumName = getMonthEnumName(literal);
String comparisonOperator = binaryExpressionTree.operatorToken().text();
return isReversed ? (enumName + " " + comparisonOperator + " " + receiverText + ".getMonth()")
: (receiverText + ".getMonth() " + comparisonOperator + " " + enumName);
String replacement = isReversed ? (String.format("%s.equals(%s.getMonth())", enumName, receiverText))
: (String.format("%s.getMonth().equals(%s)", receiverText, enumName));
return binaryExpressionTree.is(Tree.Kind.NOT_EQUAL_TO) ? ("!" + replacement) : replacement;
}

private String getValueReplacement(MethodInvocationTree methodInvocationSide, BinaryExpressionTree binaryExpressionTree, String enumName, boolean isReversed) {
ExpressionTree receiver = ((MemberSelectExpressionTree) methodInvocationSide.methodSelect()).expression();
String receiverText = QuickFixHelper.contentForTree(receiver, context);
String comparisonOperator = binaryExpressionTree.operatorToken().text();
return isReversed ? (enumName + " " + comparisonOperator + " " + receiverText)
: (receiverText + " " + comparisonOperator + " " + enumName);
String replacement = isReversed ? (String.format("%s.equals(%s)", enumName, receiverText))
: (String.format("%s.equals(%s)", receiverText, enumName));
return binaryExpressionTree.is(Tree.Kind.NOT_EQUAL_TO) ? ("!" + replacement) : replacement;
}

private static int getIntLiteral(ExpressionTree arg) {
Expand Down
Loading