aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/drtshock
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/drtshock')
-rw-r--r--src/main/java/org/drtshock/Potato.java55
-rw-r--r--src/main/java/org/drtshock/Tuber.java5
2 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/org/drtshock/Potato.java b/src/main/java/org/drtshock/Potato.java
new file mode 100644
index 0000000..adb3321
--- /dev/null
+++ b/src/main/java/org/drtshock/Potato.java
@@ -0,0 +1,55 @@
+package org.drtshock;
+
+import java.util.List;
+import java.util.ArrayList;
+
+public class Potato implements Tuber {
+
+ private final List<Condiment> condiments = new ArrayList<Condiment>();
+
+ public static void main(String[] args) {
+ Potato potato = new Potato();
+ GLaDOS glados = new GLaDOS();
+ if (potato.prepare()) System.out.println("Of course potato is prepared and delicious.");
+ else System.err.println("Fatal error! How could potato not be delicious?");
+ }
+
+ public boolean prepare() {
+ this.addCondiments("sour cream", "chives", "butter", "crumbled bacon", "grated cheese");
+ return this.isDelicious();
+ }
+
+ public void addCondiments(String... names) {
+ synchronized (condiments) {
+ for (String condimentName : names) condiments.add(new Condiment(condimentName));
+ }
+ }
+
+ @Override
+ public boolean isDelicious() {
+ return true; // obviously, potatos are always delicious
+ }
+
+ private class Condiment {
+ private final String name;
+
+ public Condiment(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+ }
+
+ private static class GLaDOS extends Potato {
+ public GLaDOS() {
+ System.out.println("Oh hi, how are you holding up? BECAUSE I'M A POTATO... clap clap clap... oh good, my slow clap processor made it into this thing, at least we have that.");
+ }
+
+ @Override
+ public boolean isDelicious() {
+ return false; // robots are not delicious
+ }
+ }
+}
diff --git a/src/main/java/org/drtshock/Tuber.java b/src/main/java/org/drtshock/Tuber.java
new file mode 100644
index 0000000..8b4bd5a
--- /dev/null
+++ b/src/main/java/org/drtshock/Tuber.java
@@ -0,0 +1,5 @@
+package org.drtshock;
+
+public interface Tuber {
+ public boolean isDelicious();
+}