diff --git a/.classpath b/.classpath index e738af1..7ea8152 100644 --- a/.classpath +++ b/.classpath @@ -2,7 +2,7 @@ - + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..4adc08d --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//src/defaultpackage/StringCalculatorProduct.java=Cp1252 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 3a21537..8000cd6 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,11 +1,11 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/bin/defaultpackage/StringCalculator.class b/bin/defaultpackage/StringCalculator.class new file mode 100644 index 0000000..f8c377e Binary files /dev/null and b/bin/defaultpackage/StringCalculator.class differ diff --git a/bin/defaultpackage/StringCalculatorProduct.class b/bin/defaultpackage/StringCalculatorProduct.class new file mode 100644 index 0000000..abf94e4 Binary files /dev/null and b/bin/defaultpackage/StringCalculatorProduct.class differ diff --git a/bin/defaultpackage/calculatorTester.class b/bin/defaultpackage/calculatorTester.class new file mode 100644 index 0000000..a4e692e Binary files /dev/null and b/bin/defaultpackage/calculatorTester.class differ diff --git a/src/defaultpackage/StringCalculator.java b/src/defaultpackage/StringCalculator.java new file mode 100644 index 0000000..48adc30 --- /dev/null +++ b/src/defaultpackage/StringCalculator.java @@ -0,0 +1,24 @@ +package defaultpackage; +import java.util.Scanner; +import java.lang.StringBuilder; + +public class StringCalculator { + private StringCalculatorProduct stringCalculatorProduct = new StringCalculatorProduct(); + Scanner getString=new Scanner(System.in); + StringBuilder deleter= new StringBuilder(); + public String addNumbers() + { + String theStringForTheCalculator=getString.nextLine(); + System.out.println("The string added: "+theStringForTheCalculator); + return stringCalculatorProduct.calculatorMethod(theStringForTheCalculator, this.deleter, this); + } + public boolean unknownAmountOfNumbers(String stringFromCalc){ + if(stringFromCalc.length()>2||stringFromCalc.length()<0) + { + return false; + } + else{ + return true; + } + } +} diff --git a/src/defaultpackage/StringCalculatorProduct.java b/src/defaultpackage/StringCalculatorProduct.java new file mode 100644 index 0000000..75c84ac --- /dev/null +++ b/src/defaultpackage/StringCalculatorProduct.java @@ -0,0 +1,82 @@ +package defaultpackage; + + +public class StringCalculatorProduct { + //This is the God Class that the JDeodorant structured by itself. + //I was not able to understand what the JDeodorant is suggesting and I had to see what it does. + private int a; + private int b = 0; + private char[] numberArray; + private String numbers; + + public int calculateSum() { + int sum = 0; + sum = a + b; + return sum; + } + + public void setB() { + //This is the first change I created. From Long Method feature of the JDeodorant it came up there is this too long method in if-clause. + b = Integer.parseInt(String.valueOf(numberArray[1])); + System.out.println("b set to:" + b); + } + + public String calculatorMethod(String numbersSend, + StringBuilder thisDeleter, StringCalculator stringCalculator) { + numbers = numbersSend; + numberArray = numbers.toCharArray(); + if (numberArray.length > 2) { + for (int j = 0; j < numberArray.length; j++) { + if (numberArray[j] == '\\' && numberArray[j + 1] == 'n') { + numbers = new String(numberArray); + thisDeleter.append(numbers); + thisDeleter.deleteCharAt(j); + thisDeleter.deleteCharAt(j); + numberArray = thisDeleter.toString().toCharArray(); + System.out.println("Numberarray in for after all: " + + numberArray[0] + numberArray[1]); + System.out.println("Numberarray length: " + + numberArray.length); + numbers = new String(numberArray); + } + } + } + System.out.println("The char array created."); + int theSum = theSum(stringCalculator); + System.out.println("Sum set minus one and defined."); + String stringBack = null; + System.out.println("stringBack defined and set null."); + if (!stringCalculator.unknownAmountOfNumbers(numbers)) + unknownNumb(); + else { + System.out.println("a set to something."); + System.out.println("A is:" + a + "\n And B is: " + b); + System.out.println("The sum is: " + theSum); + stringBack = Integer.toString(theSum); + System.out.println("stringBack is: " + stringBack); + } + return stringBack; + } + + public int theSum(StringCalculator stringCalculator) + throws java.lang.NumberFormatException { + int theSum = -1; + if (!stringCalculator.unknownAmountOfNumbers(numbers)) { + } else { + a = Integer.parseInt(String.valueOf(numberArray[0])); + if (numberArray.length > 1) + setB(); + theSum = calculateSum(); + } + return theSum; + } + + public void unknownNumb() { + System.out.println("Unknown amount of numbers."); + unknownNumberHandler(numbers); + } + + public void unknownNumberHandler(String unknownNumbers) { + unknownNumbers = null; + } +} \ No newline at end of file diff --git a/tests/defaultpackage/calculatorTester.java b/tests/defaultpackage/calculatorTester.java new file mode 100644 index 0000000..0257fde --- /dev/null +++ b/tests/defaultpackage/calculatorTester.java @@ -0,0 +1,25 @@ +package defaultpackage; + +import static org.junit.Assert.*; + +import org.junit.Test; +import java.util.Scanner; + +public class calculatorTester { + + @Test + public void test() { + //fail("Not yet implemented"); + } + @Test + public void insertString(){ + StringCalculator calc = new StringCalculator(); + String stringReturned = calc.addNumbers(); + System.out.println("String returned to test: "+stringReturned); + if(stringReturned==null) + { + fail("No sum executed."); + } + } + +}