aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/drtshock/NotDeliciousException.java3
-rw-r--r--src/main/java/org/drtshock/NotDeliciousReason.java3
-rw-r--r--src/main/java/org/drtshock/Potato.java20
3 files changed, 19 insertions, 7 deletions
diff --git a/src/main/java/org/drtshock/NotDeliciousException.java b/src/main/java/org/drtshock/NotDeliciousException.java
index 8e9b5cf..bfcc707 100644
--- a/src/main/java/org/drtshock/NotDeliciousException.java
+++ b/src/main/java/org/drtshock/NotDeliciousException.java
@@ -14,4 +14,7 @@ public class NotDeliciousException extends Exception {
this.notDeliciousReason = notDeliciousReason;
}
+ public NotDeliciousReason getReason() {
+ return notDeliciousReason;
+ }
}
diff --git a/src/main/java/org/drtshock/NotDeliciousReason.java b/src/main/java/org/drtshock/NotDeliciousReason.java
index 5939f97..d093f08 100644
--- a/src/main/java/org/drtshock/NotDeliciousReason.java
+++ b/src/main/java/org/drtshock/NotDeliciousReason.java
@@ -5,7 +5,8 @@ package org.drtshock;
*/
public enum NotDeliciousReason {
- RAW,
+ UNDERCOOKED,
+ OVERCOOKED,
NOT_DELICIOUS_CONDIMENT,
EXPIRED_CONDIMENT
diff --git a/src/main/java/org/drtshock/Potato.java b/src/main/java/org/drtshock/Potato.java
index b52c269..46f9546 100644
--- a/src/main/java/org/drtshock/Potato.java
+++ b/src/main/java/org/drtshock/Potato.java
@@ -20,7 +20,7 @@ public class Potato implements Tuber {
potato.prepare();
System.out.println("Of course Potato is prepared and delicious.");
} catch (NotDeliciousException e) {
- System.err.println("Fatal error! How could Potato not be delicious?");
+ System.err.println("Fatal error! How could Potato not be delicious?\nReason: " + e.getReason());
}
}
@@ -43,7 +43,7 @@ public class Potato implements Tuber {
this.addCondiments("sour cream", "chives", "butter", "crumbled bacon", "grated cheese", "ketchup", "pepper",
"salt", "tabasco", "tomatoes");
this.listCondiments();
- if (!this.isDelicious()) throw new NotDeliciousException(NotDeliciousReason.RAW);
+ if (!this.isDelicious()) throw new NotDeliciousException(NotDeliciousReason.UNDERCOOKED);
}
/**
@@ -96,9 +96,13 @@ public class Potato implements Tuber {
*
* @return true if this potato is baked, false if otherwise
*/
- public boolean isBaked() {
+ public boolean isBaked() throws NotDeliciousException {
try {
- return this.isPutIntoOven();
+ long begin = System.currentTimeMillis();
+ boolean isInOven = this.isPutIntoOven();
+ long bakeTime = (System.currentTimeMillis() - begin);
+ if (bakeTime > 1100) throw new NotDeliciousException(NotDeliciousReason.OVERCOOKED);
+ return isInOven;
} catch (OvenException e) {
return false;
}
@@ -109,7 +113,7 @@ public class Potato implements Tuber {
*
* @return true if this potato is baked, false if otherwise
*/
- public boolean isCooked() {
+ public boolean isBoiled() {
try {
return this.hasBeenBoiledInWater();
} catch (BurntException e) {
@@ -141,7 +145,11 @@ public class Potato implements Tuber {
*/
@Override
public boolean isDelicious() {
- return this.isBaked() || this.isCooked();
+ try {
+ return this.isBaked() || this.isBoiled();
+ } catch (NotDeliciousException e) {
+ return false;
+ }
}
/**