Skip to content

Commit 26eeb81

Browse files
authored
Allow single ternary operator use (#260)
1 parent a33dda1 commit 26eeb81

9 files changed

+37
-8
lines changed

src/main/java/analyzer/exercises/leap/AvoidConditionalLogic.java renamed to src/main/java/analyzer/exercises/leap/AvoidIfStatements.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import analyzer.Comment;
44

55
/**
6-
* @see <a href="https://github.com/exercism/website-copy/blob/main/analyzer-comments/java/leap/avoid_conditional_logic.md">Markdown Template</a>
6+
* @see <a href="https://github.com/exercism/website-copy/blob/main/analyzer-comments/java/leap/avoid_if_statements.md">Markdown Template</a>
77
*/
8-
class AvoidConditionalLogic extends Comment {
8+
class AvoidIfStatements extends Comment {
99
@Override
1010
public String getKey() {
11-
return "java.leap.avoid_conditional_logic";
11+
return "java.leap.avoid_if_statements";
1212
}
1313

1414
@Override
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package analyzer.exercises.leap;
2+
3+
import analyzer.Comment;
4+
5+
/**
6+
* @see <a href="https://github.com/exercism/website-copy/blob/main/analyzer-comments/java/leap/avoid_multiple_ternary.md">Markdown Template</a>
7+
*/
8+
class AvoidMultipleTernary extends Comment {
9+
@Override
10+
public String getKey() {
11+
return "java.leap.avoid_multiple_ternary";
12+
}
13+
14+
@Override
15+
public Type getType() {
16+
return Type.ACTIONABLE;
17+
}
18+
}

src/main/java/analyzer/exercises/leap/LeapAnalyzer.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,15 @@ public void visit(IntegerLiteralExpr node, OutputCollector output) {
7070

7171
@Override
7272
public void visit(IfStmt node, OutputCollector output) {
73-
output.addComment(new AvoidConditionalLogic());
73+
output.addComment(new AvoidIfStatements());
7474
super.visit(node, output);
7575
}
7676

7777
@Override
7878
public void visit(ConditionalExpr node, OutputCollector output) {
79-
output.addComment(new AvoidConditionalLogic());
79+
if (node.getThenExpr().isConditionalExpr() || node.getElseExpr().isConditionalExpr()) {
80+
output.addComment(new AvoidMultipleTernary());
81+
}
8082
super.visit(node, output);
8183
}
8284

src/test/java/analyzer/AnalyzerIntegrationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,11 @@ void lasagna(String scenario) throws IOException {
6868
@ValueSource(strings = {
6969
"HardCodedTestCases",
7070
"OptimalSolution",
71+
"OptimalTernary",
7172
"UsingGregorianCalendar",
7273
"UsingIfStatements",
7374
"UsingJavaTime",
74-
"UsingTernary",
75+
"UsingMultipleTernary",
7576
"UsingTooManyChecks",
7677
})
7778
void leap(String scenario) throws IOException {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"comments": []
3+
}

src/test/resources/analyzer/AnalyzerIntegrationTest.leap.UsingIfStatements.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"comments": [
33
{
4-
"comment": "java.leap.avoid_conditional_logic",
4+
"comment": "java.leap.avoid_if_statements",
55
"params": {},
66
"type": "actionable"
77
},

src/test/resources/analyzer/AnalyzerIntegrationTest.leap.UsingTernary.approved.txt renamed to src/test/resources/analyzer/AnalyzerIntegrationTest.leap.UsingMultipleTernary.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"comments": [
33
{
4-
"comment": "java.leap.avoid_conditional_logic",
4+
"comment": "java.leap.avoid_multiple_ternary",
55
"params": {},
66
"type": "actionable"
77
},
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class Leap {
2+
boolean isLeapYear(int year) {
3+
return (year % 100 == 0) ? (year % 400 == 0) : (year % 4 == 0);
4+
}
5+
}

0 commit comments

Comments
 (0)