aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorTrophonix <502badgamer@gmail.com>2017-06-21 08:58:25 -0500
committerTrophonix <502badgamer@gmail.com>2017-06-21 08:58:25 -0500
commit5b6db03bbdd8773ace496c296479616a14ad5b6a (patch)
tree0c728193e4590b1ef06ef24ab81a7fedde52f3ed /src/main
parent03a616b83ec2b08ff80ca2409c582a33cb117688 (diff)
Add condiment expiry functionality
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/drtshock/NotDeliciousReason.java3
-rw-r--r--src/main/java/org/drtshock/Potato.java19
2 files changed, 20 insertions, 2 deletions
diff --git a/src/main/java/org/drtshock/NotDeliciousReason.java b/src/main/java/org/drtshock/NotDeliciousReason.java
index 0687304..5b69139 100644
--- a/src/main/java/org/drtshock/NotDeliciousReason.java
+++ b/src/main/java/org/drtshock/NotDeliciousReason.java
@@ -6,6 +6,7 @@ package org.drtshock;
public enum NotDeliciousReason {
NOT_BAKED,
- NOT_DELICIOUS_CONDIMENT
+ NOT_DELICIOUS_CONDIMENT,
+ EXPIRED_CONDIMENT
}
diff --git a/src/main/java/org/drtshock/Potato.java b/src/main/java/org/drtshock/Potato.java
index fbe939e..e5b9ff3 100644
--- a/src/main/java/org/drtshock/Potato.java
+++ b/src/main/java/org/drtshock/Potato.java
@@ -5,6 +5,7 @@ import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ThreadLocalRandom;
/**
* A delicious tuber that is eaten by various peoples all over the world.
@@ -54,6 +55,7 @@ public class Potato implements Tuber {
for (String condimentName : names) {
Condiment condiment = new Condiment(condimentName, true);
if (!condiment.isDelicious()) throw new NotDeliciousException(NotDeliciousReason.NOT_DELICIOUS_CONDIMENT);
+ if (condiment.isExpired()) throw new NotDeliciousException(NotDeliciousReason.EXPIRED_CONDIMENT);
this.getCondiments().add(condiment);
}
}
@@ -158,10 +160,16 @@ public class Potato implements Tuber {
private class Condiment {
private final String name;
private final boolean delicious;
+ private final boolean expired;
- public Condiment(String name, boolean delicious) {
+ public Condiment(String name, boolean delicious, boolean expired) {
this.name = name;
this.delicious = delicious;
+ this.expired = expired;
+ }
+
+ public Condiment(String name, boolean delicious) {
+ this(name, delicious, ThreadLocalRandom.current().nextInt(100) < 3);
}
/**
@@ -174,6 +182,15 @@ public class Potato implements Tuber {
}
/**
+ * Returns if this condiment is expired or not.
+ *
+ * @return true if expired, false if otherwise
+ */
+ public boolean isExpired() {
+ return expired;
+ }
+
+ /**
* Gets the name of this condiment.
*
* @return Name