60 lines
1.4 KiB
Java
60 lines
1.4 KiB
Java
package oving3.debugging;
|
|
|
|
public class CoffeeCup {
|
|
|
|
private double capacity;
|
|
private double currentVolume;
|
|
|
|
public CoffeeCup() {
|
|
this.capacity = 0.0;
|
|
this.currentVolume = 0.0;
|
|
}
|
|
|
|
public CoffeeCup(double capacity, double currentVolume) {
|
|
if (!CoffeeCup.isValidCapacity(capacity)) {
|
|
throw new IllegalArgumentException("Illegal capacity given.");
|
|
}
|
|
this.capacity = capacity;
|
|
|
|
if (!this.isValidVolume(currentVolume)) {
|
|
throw new IllegalArgumentException("Illegal volume given.");
|
|
}
|
|
this.currentVolume = currentVolume;
|
|
}
|
|
|
|
private static boolean isValidCapacity(double capacity) {
|
|
return capacity >= 0.0;
|
|
}
|
|
|
|
public void increaseCupSize(double biggerCapacity) {
|
|
if (CoffeeCup.isValidCapacity(biggerCapacity)) {
|
|
this.capacity += biggerCapacity;
|
|
}
|
|
}
|
|
|
|
private boolean isValidVolume(double volume) {
|
|
return volume <= this.capacity && volume >= 0.0;
|
|
}
|
|
|
|
private boolean canDrink(double volume) {
|
|
return volume <= this.currentVolume;
|
|
}
|
|
|
|
public void drinkCoffee(double volume) {
|
|
if (!this.isValidVolume(volume) || !this.canDrink(volume)) {
|
|
throw new IllegalArgumentException("You cannot drink that much coffee!");
|
|
}
|
|
|
|
this.currentVolume -= volume;
|
|
}
|
|
|
|
public void fillCoffee(double volume) {
|
|
if (!this.isValidVolume(this.currentVolume + volume)) {
|
|
throw new IllegalArgumentException(
|
|
"You just poured coffee all over the table. Good job.");
|
|
}
|
|
|
|
this.currentVolume += volume;
|
|
}
|
|
}
|