aboutsummaryrefslogtreecommitdiff
path: root/Week13 Bar/src/com/camilstaps/bar
diff options
context:
space:
mode:
Diffstat (limited to 'Week13 Bar/src/com/camilstaps/bar')
-rw-r--r--Week13 Bar/src/com/camilstaps/bar/Bar.java6
-rw-r--r--Week13 Bar/src/com/camilstaps/bar/Glass.java11
-rw-r--r--Week13 Bar/src/com/camilstaps/bar/ParchedMan.java10
-rw-r--r--Week13 Bar/src/com/camilstaps/bar/Tap.java7
-rw-r--r--Week13 Bar/src/com/camilstaps/bar/Week13Bar.java8
5 files changed, 27 insertions, 15 deletions
diff --git a/Week13 Bar/src/com/camilstaps/bar/Bar.java b/Week13 Bar/src/com/camilstaps/bar/Bar.java
index ede54c2..4fd0c8f 100644
--- a/Week13 Bar/src/com/camilstaps/bar/Bar.java
+++ b/Week13 Bar/src/com/camilstaps/bar/Bar.java
@@ -36,6 +36,10 @@ public class Bar {
private final List<Glass> glasses;
private final List<ParchedMan> drinkers;
+ /**
+ * Create a new Bar. Under the hood, a new Tap is created as well.
+ * @param numberOfGlasses the number of glasses in the bar
+ */
public Bar (int numberOfGlasses) {
tap = new Tap();
glasses = new ArrayList<>();
@@ -74,7 +78,7 @@ public class Bar {
}
/**
- * Open the tap
+ * Open the bar
*/
public void startDrinking() {
for (ParchedMan man : drinkers) {
diff --git a/Week13 Bar/src/com/camilstaps/bar/Glass.java b/Week13 Bar/src/com/camilstaps/bar/Glass.java
index 1102339..2a1d2a0 100644
--- a/Week13 Bar/src/com/camilstaps/bar/Glass.java
+++ b/Week13 Bar/src/com/camilstaps/bar/Glass.java
@@ -31,14 +31,25 @@ public class Glass {
private int volume = 0;
+ /**
+ * Get the current volume
+ * @return
+ */
public int getVolume() {
return volume;
}
+ /**
+ * Fill the glass
+ * @param cc volume to fill
+ */
public void fill(int cc) {
volume = cc;
}
+ /**
+ * Empty the glass
+ */
public void empty() {
volume = 0;
}
diff --git a/Week13 Bar/src/com/camilstaps/bar/ParchedMan.java b/Week13 Bar/src/com/camilstaps/bar/ParchedMan.java
index 6821130..1c1916d 100644
--- a/Week13 Bar/src/com/camilstaps/bar/ParchedMan.java
+++ b/Week13 Bar/src/com/camilstaps/bar/ParchedMan.java
@@ -44,21 +44,17 @@ public class ParchedMan implements Runnable {
this.tap = tap;
}
- @Override
- public void run() {
- drawAndDrink();
- }
-
/**
* While not satisfied, take a glass if possible, and drink
*/
- public void drawAndDrink() {
+ @Override
+ public void run() {
while (!isSatisfied()) {
Glass glass = bar.getGlass();
if (glass != null) {
glass = tap.fillUp(glass);
+ System.out.println("Man " + id + " drinks one glass (" + glass.toString() + ")");
try {
- System.out.println("Man " + id + " drinks one glass (" + glass.toString() + ")");
Thread.sleep(glass.getVolume() * DRINK_TIME_PER_CC);
} catch (InterruptedException e) {}
glass.empty();
diff --git a/Week13 Bar/src/com/camilstaps/bar/Tap.java b/Week13 Bar/src/com/camilstaps/bar/Tap.java
index af22d01..fa4480e 100644
--- a/Week13 Bar/src/com/camilstaps/bar/Tap.java
+++ b/Week13 Bar/src/com/camilstaps/bar/Tap.java
@@ -29,13 +29,12 @@ package com.camilstaps.bar;
*/
public class Tap {
- private static final int CC_PER_GLASS = 200;
- private static final int DRAW_TIME_PER_CC = 1;
+ private static final int CC_PER_GLASS = 200, DRAW_TIME_PER_CC = 1;
/**
* Fill a glass. This method can fill one glass at a time.
- * @param glass
- * @return
+ * @param glass the glass to fill
+ * @return the glass itself
*/
public synchronized Glass fillUp(Glass glass) {
System.err.println("Tap fills glass " + glass.toString());
diff --git a/Week13 Bar/src/com/camilstaps/bar/Week13Bar.java b/Week13 Bar/src/com/camilstaps/bar/Week13Bar.java
index 5035b62..77772a1 100644
--- a/Week13 Bar/src/com/camilstaps/bar/Week13Bar.java
+++ b/Week13 Bar/src/com/camilstaps/bar/Week13Bar.java
@@ -28,13 +28,15 @@ package com.camilstaps.bar;
* @author Camil Staps, s4498062
*/
public class Week13Bar {
+
+ public static final int DRINKERS = 10, GLASSES = 7;
/**
- * @param args the command line arguments
+ * @param args the command line arguments (ignored)
*/
public static void main(String[] args) {
- Bar bar = new Bar(7);
- bar.addDrinkers(10);
+ Bar bar = new Bar(GLASSES);
+ bar.addDrinkers(DRINKERS);
bar.startDrinking();
}