From 357e9b23cce433582406d03e6e6650775141211c Mon Sep 17 00:00:00 2001 From: BrittanyBi Date: Mon, 4 Mar 2019 22:24:27 -0700 Subject: [PATCH] PAN-10 Refactored direct access of fields to getter and setter methods. --- .../msudenver/tsp/services/parser/Node.java | 15 ++-- .../tsp/services/parser/ParserService.java | 76 +++++++++---------- .../services/parser/ParserServiceTest.java | 17 +++-- 3 files changed, 54 insertions(+), 54 deletions(-) diff --git a/services/src/main/java/edu/msudenver/tsp/services/parser/Node.java b/services/src/main/java/edu/msudenver/tsp/services/parser/Node.java index 2cf31d8..2b92dec 100644 --- a/services/src/main/java/edu/msudenver/tsp/services/parser/Node.java +++ b/services/src/main/java/edu/msudenver/tsp/services/parser/Node.java @@ -1,13 +1,16 @@ package edu.msudenver.tsp.services.parser; +import lombok.Getter; +import lombok.Setter; + public class Node { - String statement; - Node left; - Node right; - Node center; - Node parent; - int depth; + @Getter private final String statement; + @Getter @Setter private Node left; + @Getter @Setter private Node right; + @Getter @Setter private Node center; + @Getter private final Node parent; + @Getter private final int depth; public Node(final String statement, final Node parent) { diff --git a/services/src/main/java/edu/msudenver/tsp/services/parser/ParserService.java b/services/src/main/java/edu/msudenver/tsp/services/parser/ParserService.java index d440fb6..58e894d 100644 --- a/services/src/main/java/edu/msudenver/tsp/services/parser/ParserService.java +++ b/services/src/main/java/edu/msudenver/tsp/services/parser/ParserService.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.List; @Service class ParserService { @@ -30,7 +31,7 @@ class ParserService { { try { final Node tree = parseRawInput(userInput); - final ArrayList statements = retrieveStatements(tree); + final List statements = retrieveStatements(tree); return true; } catch(final Exception e) { @@ -58,72 +59,67 @@ class ParserService { { int wordBeginsHere; - if(current.statement.contains("let")) + if(current.getStatement().contains("let")) { - current.left = new Node("let", - current); + current.setLeft(new Node("let", current)); - if(current.statement.contains("if")){ - wordBeginsHere = current.statement.indexOf("if"); - } else if(current.statement.contains("then")){ - wordBeginsHere = current.statement.indexOf("then"); + if(current.getStatement().contains("if")){ + wordBeginsHere = current.getStatement().indexOf("if"); + } else if(current.getStatement().contains("then")){ + wordBeginsHere = current.getStatement().indexOf("then"); } else { - wordBeginsHere = current.statement.length(); + wordBeginsHere = current.getStatement().length(); } - current.left.center = new Node(current.statement.substring(current.statement.indexOf("let")+"let".length(), + current.getLeft().setCenter(new Node(current.getStatement().substring(current.getStatement().indexOf("let")+"let".length(), wordBeginsHere), - current.left); - recurse(current.left.center); + current.getLeft())); + recurse(current.getLeft().getCenter()); } - if(current.statement.contains("if")) + if(current.getStatement().contains("if")) { - current.center = new Node("if", - current); - wordBeginsHere = (current.statement.contains("then") ? current.statement.indexOf("then") : current.statement.length()); + current.setCenter(new Node("if", current)); + wordBeginsHere = (current.getStatement().contains("then") ? current.getStatement().indexOf("then") : current.getStatement().length()); - current.center.center = new Node(current.statement.substring(current.statement.indexOf("if")+"if".length(), + current.getCenter().setCenter(new Node(current.getStatement().substring(current.getStatement().indexOf("if")+"if".length(), wordBeginsHere), - current.center); - recurse(current.center.center); + current.getCenter())); + recurse(current.getCenter().getCenter()); } - if(current.statement.contains("then")) + if(current.getStatement().contains("then")) { - current.right = new Node("then", - current); - current.right.center = new Node(current.statement.substring(current.statement.indexOf("then")+"then".length()), - current.right); - recurse(current.right.center); + current.setRight(new Node("then", current)); + current.getRight().setCenter(new Node(current.getStatement().substring(current.getStatement().indexOf("then")+"then".length()), + current.getRight())); + recurse(current.getRight().getCenter()); } } - public ArrayList retrieveStatements(final Node parsedTree) + public List retrieveStatements(final Node parsedTree) { - final ArrayList statementList = new ArrayList<>(); - - traverse(parsedTree, statementList); - - return statementList; + return populateStatementList(parsedTree, new ArrayList<>()); } - private ArrayList traverse(final Node node, final ArrayList statementList) + private ArrayList populateStatementList(final Node node, final ArrayList statementList) { - if(node == null) return statementList; - - if(!(node.statement.contains("let") || node.statement.contains("if") || node.statement.contains("then"))) + if(node == null) { - statementList.add(node.statement.trim()); + return statementList; } - traverse(node.left, statementList); + final String statement = node.getStatement().trim(); + if(!(statement.contains("let") || statement.contains("if") || statement.contains("then"))) + { + statementList.add(statement); + } - traverse(node.center, statementList); - - traverse(node.right, statementList); + populateStatementList(node.getLeft(), statementList); + populateStatementList(node.getCenter(), statementList); + populateStatementList(node.getRight(), statementList); return statementList; } diff --git a/services/src/test/java/edu/msudenver/tsp/services/parser/ParserServiceTest.java b/services/src/test/java/edu/msudenver/tsp/services/parser/ParserServiceTest.java index 9cd2005..829a02a 100644 --- a/services/src/test/java/edu/msudenver/tsp/services/parser/ParserServiceTest.java +++ b/services/src/test/java/edu/msudenver/tsp/services/parser/ParserServiceTest.java @@ -7,6 +7,7 @@ import org.mockito.InjectMocks; import org.mockito.runners.MockitoJUnitRunner; import java.util.ArrayList; +import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -102,29 +103,29 @@ public class ParserServiceTest { @Test public void testEmptyStringReturnsEmptyList() { - final ArrayList expectedList = new ArrayList<>(); + final List expectedList = new ArrayList<>(); expectedList.add(""); when(mockParserService.parseRawInput(anyString())).thenReturn(new Node("", null)); - final ArrayList actualList = parserService.retrieveStatements(mockParserService.parseRawInput("")); + final List actualList = parserService.retrieveStatements(mockParserService.parseRawInput("")); assertEquals(expectedList, actualList); } @Test public void testBaseCaseReturnsXIsEven() { - final ArrayList expectedList = new ArrayList<>(); + final List expectedList = new ArrayList<>(); expectedList.add("x is even"); expectedList.add("x^2 is even"); final Node testNode = new Node("if x is even then x^2 is even", null); - testNode.center = new Node("if", testNode); - testNode.center.center = new Node(" x is even ", testNode.center); - testNode.right = new Node("then", testNode); - testNode.right.center = new Node(" x^2 is even", testNode.right); + testNode.setCenter(new Node("if", testNode)); + testNode.getCenter().setCenter(new Node(" x is even ", testNode.getCenter())); + testNode.setRight(new Node("then", testNode)); + testNode.getRight().setCenter(new Node(" x^2 is even", testNode.getRight())); when(mockParserService.parseRawInput(anyString())).thenReturn(testNode); - final ArrayList actualList = parserService.retrieveStatements(mockParserService.parseRawInput("baseCase")); + final List actualList = parserService.retrieveStatements(mockParserService.parseRawInput("baseCase")); assertEquals(expectedList, actualList); }