diff --git a/src/main/java/org/drtshock/Potato.java b/src/main/java/org/drtshock/Potato.java index 6f29a36..d7c35a1 100644 --- a/src/main/java/org/drtshock/Potato.java +++ b/src/main/java/org/drtshock/Potato.java @@ -6,6 +6,9 @@ import java.net.URL; import java.util.ArrayList; import java.util.List; +/** + * A delicious tuber that is eaten by peoples all over the world. + */ public class Potato implements Tuber { private final List condiments = new ArrayList(); @@ -20,24 +23,43 @@ public class Potato implements Tuber { } } + /** + * Prepares the potato for consumption. Adds various condiments and prints them to stdout. Ensures that the potato + * is delicious. If it is not, a {@link NotDeliciousException} is thrown. + * + * @throws NotDeliciousException If the potato is not delicious + */ public void prepare() throws NotDeliciousException { this.addCondiments("sour cream", "chives", "butter", "crumbled bacon", "grated cheese", "ketchup", "salt", "tabasco"); this.listCondiments(); if(!this.isDelicious()) throw new NotDeliciousException(); } + /** + * Adds condiments to the potato. + * + * @param names Names of the condiments to add + */ public void addCondiments(String... names) { for (String condimentName : names) { this.condiments.add(new Condiment(condimentName)); } } + /** + * Prints the names of the condiments on this potato to stdout. + */ public void listCondiments() { for (Condiment condiment : this.condiments) { System.out.println(condiment.getName()); } } + /** + * Checks if the potato is put into the oven. + * + * @return true if potato is in the oven, false if otherwise + */ public boolean isPutIntoOven() { try { final URL url = new URL("https://www.google.com/search?q=potato"); @@ -52,20 +74,38 @@ public class Potato implements Tuber { } } + /** + * Checks if this potato is baked. Returns the result of {@link #isPutIntoOven()}. + * + * @return true if this potato is baked, false if otherwise + */ public boolean isBaked() { return this.isPutIntoOven(); } + /** + * Checks if this potato is delicious. Returns the result of {@link #isBaked()}. + * + * @return true if this potato is delicious, false if otherwise + */ @Override public boolean isDelicious() { return this.isBaked(); } + /** + * Propagates a new potato. + * + * @return A new potato + */ @Override public Tuber propagate() { return new Potato(); } + /** + * A type of food added to tubers. + */ private class Condiment { private final String name; @@ -73,6 +113,11 @@ public class Potato implements Tuber { this.name = name; } + /** + * Gets the name of this condiment. + * + * @return Name + */ public String getName() { return this.name; }