From f62721149a1ca2d6263bf8c4a87507cf100c87ab Mon Sep 17 00:00:00 2001 From: Daniel Chan Date: Mon, 23 Sep 2019 12:55:27 -0400 Subject: [PATCH] Completed the lab2 and applied the COMAND pattern. --- .../csc207/javaexamples/JavaExamples.java | 96 ------------------- .../csc207/javaexamples/MainActivity.java | 45 ++++++++- .../javaexamples/examples/ForExample.java | 23 +++++ .../javaexamples/examples/JavaExamples.java | 7 ++ .../javaexamples/examples/ObjectExample.java | 20 ++++ .../examples/StringArrayExample.java | 30 ++++++ .../javaexamples/examples/WhileExample.java | 24 +++++ 7 files changed, 144 insertions(+), 101 deletions(-) delete mode 100644 app/src/main/java/uoft/csc207/javaexamples/JavaExamples.java create mode 100644 app/src/main/java/uoft/csc207/javaexamples/examples/ForExample.java create mode 100644 app/src/main/java/uoft/csc207/javaexamples/examples/JavaExamples.java create mode 100644 app/src/main/java/uoft/csc207/javaexamples/examples/ObjectExample.java create mode 100644 app/src/main/java/uoft/csc207/javaexamples/examples/StringArrayExample.java create mode 100644 app/src/main/java/uoft/csc207/javaexamples/examples/WhileExample.java diff --git a/app/src/main/java/uoft/csc207/javaexamples/JavaExamples.java b/app/src/main/java/uoft/csc207/javaexamples/JavaExamples.java deleted file mode 100644 index 4d4cb20..0000000 --- a/app/src/main/java/uoft/csc207/javaexamples/JavaExamples.java +++ /dev/null @@ -1,96 +0,0 @@ -package uoft.csc207.javaexamples; - -import java.util.Arrays; -import java.util.regex.Pattern; - -/** - * Examples of Java constructs. - */ -public class JavaExamples { - - /** - * Demonstrate Java: if statements, while loops, arrays, and so on. - * - * @param input - * @return the result. - */ - public String doJavaExamples(String input) { - String result = null; - switch (input) { - case MainActivity.WHILE_EXAMPLE: - result = doSumWhileLoop(); - break; - case MainActivity.FOR_EXAMPLE: - result = doSumForLoop(); - break; - case MainActivity.ARRAY_EXAMPLE: - result = doStringArrayExample(); - break; - case MainActivity.OBJECT_EXAMPLE: - result = doObjectExample(); - break; - default: - result = "Unexpected input"; - } - return result; - } - - /** - * Create a Person and return the toString value. - * @return the printable representation of the Person. - */ - private String doObjectExample() { - String name = "Justin Pierre James Trudeau"; - Person primeMinister = new Person("trudeauj", name.split(" ")); - return primeMinister.toString(); - } - - /** - * Sum the numbers 1 through 10 using a while loop and return a sentence containing the result. - * - * @return a sentence containing the sum of 1 through 10. - */ - private String doSumWhileLoop() { - int i = 0; - int sum = 0; - while (i != 10) { - i = i + 1; - sum = sum + i; - } - return "While: sum of 1 through 10 is " + sum; - } - - /** - * Sum the numbers 1 through 10 using a for loop and return a sentence containing the result. - * - * @return a sentence containing the sum of 1 through 10. - */ - private String doSumForLoop() { - int sum = 0; - for (int i = 1; i != 11; i++) { - sum = sum + i; - } - - return "For: sum of 1 through 10 is " + sum; - } - - /** - * Create a String array and manipulate it. - * - * @return - */ - private String doStringArrayExample() { - String karen = "Karen"; - String mike = "Mike"; - String paul = "Paul"; - String[] myStrings; - myStrings = new String[]{karen, mike, paul, "Moogah"}; - - // What does this do? - myStrings[0] = myStrings[1]; - myStrings[1] = myStrings[2]; - myStrings[2] = myStrings[0]; - - return Arrays.toString(myStrings); - } -} diff --git a/app/src/main/java/uoft/csc207/javaexamples/MainActivity.java b/app/src/main/java/uoft/csc207/javaexamples/MainActivity.java index ef3eb7c..cd6a508 100644 --- a/app/src/main/java/uoft/csc207/javaexamples/MainActivity.java +++ b/app/src/main/java/uoft/csc207/javaexamples/MainActivity.java @@ -16,6 +16,15 @@ import android.widget.EditText; import android.widget.Spinner; +import java.util.HashMap; +import java.util.Map; + +import uoft.csc207.javaexamples.examples.ForExample; +import uoft.csc207.javaexamples.examples.JavaExamples; +import uoft.csc207.javaexamples.examples.ObjectExample; +import uoft.csc207.javaexamples.examples.StringArrayExample; +import uoft.csc207.javaexamples.examples.WhileExample; + public class MainActivity extends AppCompatActivity { /** @@ -35,10 +44,7 @@ public class MainActivity extends AppCompatActivity { */ private final String[] whatToDo = {WHILE_EXAMPLE, FOR_EXAMPLE, ARRAY_EXAMPLE, OBJECT_EXAMPLE}; - /** - * The examples to choose from. - */ - private JavaExamples examples = new JavaExamples(); + private Map map = new HashMap<>(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -55,6 +61,8 @@ protected void onCreate(Bundle savedInstanceState) { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); + + } @Override @@ -88,8 +96,35 @@ public void doJavaExamples(View view) { EditText outputText = (EditText) findViewById(R.id.outputText); Spinner spinner = (Spinner) findViewById(R.id.javaSpinner); String choice = spinner.getSelectedItem().toString(); - String result = examples.doJavaExamples(choice); + String result = doJavaExamples(choice); outputText.setText(result); } + /** + * Demonstrate Java: if statements, while loops, arrays, and so on. + * + * @param input + * @return the result. + */ + public String doJavaExamples(String input) { + + String result; + + if (this.map.containsKey(input)) { + result = this.map.get(input).doExample(); + } else { + result = "Unexpected input"; + } + + return result; + } + + + private void buildMap() { + this.map.put(WHILE_EXAMPLE, new WhileExample()); + this.map.put(FOR_EXAMPLE, new ForExample()); + this.map.put(ARRAY_EXAMPLE, new StringArrayExample()); + this.map.put(OBJECT_EXAMPLE, new ObjectExample()); + } + } diff --git a/app/src/main/java/uoft/csc207/javaexamples/examples/ForExample.java b/app/src/main/java/uoft/csc207/javaexamples/examples/ForExample.java new file mode 100644 index 0000000..5ac6634 --- /dev/null +++ b/app/src/main/java/uoft/csc207/javaexamples/examples/ForExample.java @@ -0,0 +1,23 @@ +package uoft.csc207.javaexamples.examples; + +public class ForExample implements JavaExamples { + + @Override + public String doExample() { + return this.doSumForLoop(); + } + + /** + * Sum the numbers 1 through 10 using a for loop and return a sentence containing the result. + * + * @return a sentence containing the sum of 1 through 10. + */ + private String doSumForLoop() { + int sum = 0; + for (int i = 1; i != 11; i++) { + sum = sum + i; + } + + return "For: sum of 1 through 10 is " + sum; + } +} diff --git a/app/src/main/java/uoft/csc207/javaexamples/examples/JavaExamples.java b/app/src/main/java/uoft/csc207/javaexamples/examples/JavaExamples.java new file mode 100644 index 0000000..58e2d01 --- /dev/null +++ b/app/src/main/java/uoft/csc207/javaexamples/examples/JavaExamples.java @@ -0,0 +1,7 @@ +package uoft.csc207.javaexamples.examples; + +public interface JavaExamples { + + String doExample(); + +} diff --git a/app/src/main/java/uoft/csc207/javaexamples/examples/ObjectExample.java b/app/src/main/java/uoft/csc207/javaexamples/examples/ObjectExample.java new file mode 100644 index 0000000..c5189f4 --- /dev/null +++ b/app/src/main/java/uoft/csc207/javaexamples/examples/ObjectExample.java @@ -0,0 +1,20 @@ +package uoft.csc207.javaexamples.examples; + +import uoft.csc207.javaexamples.Person; + +public class ObjectExample implements JavaExamples { + @Override + public String doExample() { + return this.doObjectExample(); + } + + /** + * Create a Person and return the toString value. + * @return the printable representation of the Person. + */ + private String doObjectExample() { + String name = "Justin Pierre James Trudeau"; + Person primeMinister = new Person("trudeauj", name.split(" ")); + return primeMinister.toString(); + } +} diff --git a/app/src/main/java/uoft/csc207/javaexamples/examples/StringArrayExample.java b/app/src/main/java/uoft/csc207/javaexamples/examples/StringArrayExample.java new file mode 100644 index 0000000..4508186 --- /dev/null +++ b/app/src/main/java/uoft/csc207/javaexamples/examples/StringArrayExample.java @@ -0,0 +1,30 @@ +package uoft.csc207.javaexamples.examples; + +import java.util.Arrays; + +public class StringArrayExample implements JavaExamples { + @Override + public String doExample() { + return this.doStringArrayExample(); + } + + /** + * Create a String array and manipulate it. + * + * @return + */ + private String doStringArrayExample() { + String karen = "Karen"; + String mike = "Mike"; + String paul = "Paul"; + String[] myStrings; + myStrings = new String[]{karen, mike, paul, "Moogah"}; + + // What does this do? + myStrings[0] = myStrings[1]; + myStrings[1] = myStrings[2]; + myStrings[2] = myStrings[0]; + + return Arrays.toString(myStrings); + } +} diff --git a/app/src/main/java/uoft/csc207/javaexamples/examples/WhileExample.java b/app/src/main/java/uoft/csc207/javaexamples/examples/WhileExample.java new file mode 100644 index 0000000..2cc562d --- /dev/null +++ b/app/src/main/java/uoft/csc207/javaexamples/examples/WhileExample.java @@ -0,0 +1,24 @@ +package uoft.csc207.javaexamples.examples; + +public class WhileExample implements JavaExamples { + + @Override + public String doExample() { + return this.doSumWhileLoop(); + } + + /** + * Sum the numbers 1 through 10 using a while loop and return a sentence containing the result. + * + * @return a sentence containing the sum of 1 through 10. + */ + private String doSumWhileLoop() { + int i = 0; + int sum = 0; + while (i != 10) { + i = i + 1; + sum = sum + i; + } + return "While: sum of 1 through 10 is " + sum; + } +}