Files
Potato/src/main/java/org/drtshock/Potato.java
2014-02-04 18:31:34 +08:00

62 lines
1.6 KiB
Java

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", "ketchup", "salt");
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
}
@Override
public Tuber propagate() {
return new Potato();
}
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
}
}
}