summaryrefslogtreecommitdiff
path: root/src/com/benburwell/planes/data/Aircraft.java
blob: 71ee5b5a01ba89b81721c4264afd772c693c331e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.benburwell.planes.data;

import com.benburwell.planes.sbs.SBSPacket;

import java.util.List;
import java.util.ArrayList;

/**
 * Created by ben on 11/15/16.
 */
public class Aircraft implements Comparable<Aircraft> {
    private final String hexIdent;
    private Position currentPosition = new Position();
    private List<Position> positionHistory = new ArrayList<>();
    private String callsign = "";
    private String squawk = "";
    private long packetCount = 0;

    public Aircraft(String hexIdent) {
        this.hexIdent = hexIdent;
    }

    public void handleUpdate(SBSPacket packet) {
        this.packetCount++;
        if (packet.getAltitude() != null) {
            this.currentPosition.setAltitude(packet.getAltitude());
        }
        if (packet.getLatitude() != null) {
            this.currentPosition.setLatitude(packet.getLatitude());
        }
        if (packet.getLongitude() != null) {
            this.currentPosition.setLongitude(packet.getLongitude());
        }
        if (packet.getCallsign() != null && !packet.getCallsign().isEmpty()) {
            this.callsign = packet.getCallsign();
        }
        if (packet.getSquawk() != null && !packet.getSquawk().isEmpty()) {
            this.callsign = packet.getSquawk();
        }
    }

    public Position getCurrentPosition() {
        return currentPosition;
    }

    public String getCallsign() {
        return callsign;
    }

    public String getSquawk() {
        return squawk;
    }

    public Long getPacketCount() {
        return packetCount;
    }

    public String getHexIdent() {
        return this.hexIdent;
    }

    @Override
    public int compareTo(Aircraft that) {
        return this.getHexIdent().compareTo(that.getHexIdent());
    }
}