From a8281523e2bbee4a1b4688f175896fe9c6b30c55 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 28 May 2015 23:50:19 +0200 Subject: This does seem to work a bit... kindof... --- Week14 Route 66/src/OO14route66/Regelaar.java | 40 ++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'Week14 Route 66/src/OO14route66/Regelaar.java') diff --git a/Week14 Route 66/src/OO14route66/Regelaar.java b/Week14 Route 66/src/OO14route66/Regelaar.java index 1fc336f..bf4cbfd 100644 --- a/Week14 Route 66/src/OO14route66/Regelaar.java +++ b/Week14 Route 66/src/OO14route66/Regelaar.java @@ -6,10 +6,48 @@ package OO14route66; +import java.util.HashMap; +import java.util.Map; + /** * * @author pieterkoopman */ -class Regelaar { +public class Regelaar { + + private static Regelaar instance; + + Map locations; + + protected Regelaar() { + locations = new HashMap<>(); + } + + public static Regelaar getInstance() { + if (instance == null) { + instance = new Regelaar(); + } + return instance; + } + + public synchronized void setLocation(Car car, int location) { + if (locations.containsKey(car)) { + locations.remove(car); + } + locations.put(car, location); + } + + public synchronized boolean isSafeLocation(Car car, int requested_location) { + for (Map.Entry location : locations.entrySet()) { + Car that_car = location.getKey(); + if (that_car != car && + that_car.getDirection() == car.getDirection() && + that_car.getLocation() > requested_location && + that_car.getLocation() < requested_location + Car.CARLENGTH + Car.MINCARSPACE) { + return false; + } + } + return true; + } } -- cgit v1.2.3