package dk.daoas.adressevedligehold.beans; public class Address implements Comparable
{ public enum AddressState { NOT_CHANGED, CREATED, OPENED, MODIFIED, CLOSED } public int id; public short postnr; public String vejnavn; public int gadeid;// GadeID kan godt være i en alm 32bit int public short kommunekode; public short vejkode; public short husnr; public String husnrbogstav; public String distributor; public short dbkBane; public String ruteMandag; public String korelisteMandag; public String ruteTirsdag; public String korelisteTirsdag; public String ruteOnsdag; public String korelisteOnsdag; public String ruteTorsdag; public String korelisteTorsdag; public String ruteFredag; public String korelisteFredag; public String ruteLordag; public String korelisteLordag; public String ruteSondag; public String korelisteSondag; public Address extTarget; public float extAfstand; public float latitude; public float longitude; public double xyz[]; //book keeping public boolean visited = false; public boolean visitedMan = false; public boolean visitedTir = false; public boolean visitedOns = false; public boolean visitedTor = false; public boolean visitedFre = false; public boolean visitedLor = false; public boolean visitedSon = false; public AddressState state = AddressState.NOT_CHANGED; public AddressState stateMan = AddressState.NOT_CHANGED; public AddressState stateTir = AddressState.NOT_CHANGED; public AddressState stateOns = AddressState.NOT_CHANGED; public AddressState stateTor = AddressState.NOT_CHANGED; public AddressState stateFre = AddressState.NOT_CHANGED; public AddressState stateLor = AddressState.NOT_CHANGED; public AddressState stateSon = AddressState.NOT_CHANGED; @Override public String toString() { return String.format("Address{id=%d postnr=%d vejnavn=%s husnr=%d litra=%s}", id, postnr, vejnavn, husnr, husnrbogstav); } public String toStringExtended() { return String.format("Address{id=%d postnr=%d vejnavn=%s husnr=%d litra=%s ma=%s ti=%s on=%s to=%s fr=%s lo=%s so=%s }", id, postnr, vejnavn, husnr, husnrbogstav, stateMan, stateTir, stateOns, stateTor, stateFre, stateLor, stateSon); } public String getRuteString() { return String.format("rMa=%s kMa=%s rTi=%s kTi=%s rOn=%s kOn=%s rTo=%s kTo=%s rFr=%s kFr=%s rLo=%s kLo=%s rSo=%s kSo=%s", ruteMandag, korelisteMandag, ruteTirsdag, korelisteTirsdag, ruteOnsdag, korelisteOnsdag, ruteTorsdag, korelisteTorsdag, ruteFredag, korelisteFredag, ruteLordag, korelisteLordag, ruteSondag, korelisteSondag); } @Override public int compareTo(Address arg0) { if (this.postnr != arg0.postnr) return Integer.compare(this.postnr, arg0.postnr); if (this.gadeid != arg0.gadeid) return Long.compare(this.gadeid, arg0.gadeid); if (this.husnr != arg0.husnr) return Integer.compare(this.husnr, arg0.husnr); return this.husnrbogstav.compareTo( arg0.husnrbogstav ); } @Override public int hashCode() { return this.id; } @Override public boolean equals(Object o) { if (! (o instanceof Address) ) return false; Address a = (Address) o; return (this.id == a.id); //we rely on uniqueness of DB primary key } //Bruges ved afstand anden rute public void updateXyz() { xyz = new double[3]; xyz[0] = Math.cos(Math.toRadians(latitude)) * Math.cos(Math.toRadians(longitude)); xyz[1] = Math.cos(Math.toRadians(latitude)) * Math.sin(Math.toRadians(longitude)); xyz[2] = Math.sin(Math.toRadians(latitude)); } }