From 9441ed331af3aa6b3ef45bf165e40faad18bc7fd Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Sat, 19 Nov 2016 17:39:05 -0500 Subject: Use gradle --- .../com/benburwell/planes/data/AircraftStore.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/com/benburwell/planes/data/AircraftStore.java (limited to 'src/main/java/com/benburwell/planes/data/AircraftStore.java') diff --git a/src/main/java/com/benburwell/planes/data/AircraftStore.java b/src/main/java/com/benburwell/planes/data/AircraftStore.java new file mode 100644 index 0000000..076701d --- /dev/null +++ b/src/main/java/com/benburwell/planes/data/AircraftStore.java @@ -0,0 +1,34 @@ +package com.benburwell.planes.data; + +import com.benburwell.planes.sbs.SBSPacket; + +import java.util.HashMap; +import java.util.Map; +import java.util.List; +import java.util.ArrayList; + +/** + * Created by ben on 11/17/16. + */ +public class AircraftStore { + private Map aircraftMap = new HashMap<>(); + private List aircraftListeners = new ArrayList<>(); + + public Map getAircraft() { + return this.aircraftMap; + } + + public void addPacket(SBSPacket packet) { + if (!this.aircraftMap.containsKey(packet.getHexIdent())) { + this.aircraftMap.put(packet.getHexIdent(), new Aircraft(packet.getHexIdent())); + } + this.aircraftMap.get(packet.getHexIdent()).handleUpdate(packet); + this.aircraftListeners.stream() + .filter(listener -> listener.respondTo(packet.getHexIdent())) + .forEach(AircraftStoreListener::aircraftStoreChanged); + } + + public void subscribe(AircraftStoreListener listener) { + this.aircraftListeners.add(listener); + } +} -- cgit v1.2.3