From c69264a5521da1c12a506aa844d9dfcdd471eb34 Mon Sep 17 00:00:00 2001 From: Trophonix <502badgamer@gmail.com> Date: Wed, 21 Jun 2017 09:13:23 -0500 Subject: [PATCH] Add overcooked reason, rename raw to undercooked --- .../org/drtshock/NotDeliciousException.java | 3 +++ .../java/org/drtshock/NotDeliciousReason.java | 3 ++- src/main/java/org/drtshock/Potato.java | 20 +++++++++++++------ 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; + } } /**