package no.nordicsemi.puckcentral.models; import org.droidparts.annotation.sql.Column; import org.droidparts.annotation.sql.Table; import org.droidparts.model.Entity; import java.util.ArrayList; import java.util.UUID; import no.nordicsemi.puckcentral.db.DB; @Table public class Puck extends Entity { @Column(name = DB.Column.NAME) private String mName; @Column(name = DB.Column.MINOR) private int mMinor; @Column(name = DB.Column.MAJOR) private int mMajor; @Column(name = DB.Column.PROXIMITY_UUID) private String mProximityUUID; @Column(name = DB.Column.ADDRESS) private String mAddress; @Column(name = DB.Column.SERVICE_UUIDS) private ArrayList<UUID> mServiceUUIDs; public void setName(String name) { this.mName = name; } public String getName() { return mName; } public int getMinor() { return mMinor; } public int getMajor() { return mMajor; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || ((Object) this).getClass() != o.getClass()) return false; if (!super.equals(o)) return false; Puck puck = (Puck) o; if (mMajor != puck.mMajor) return false; if (mMinor != puck.mMinor) return false; if (!mProximityUUID.equals(puck.mProximityUUID)) return false; // Consider adding check for puck address return true; } @Override public int hashCode() { int result = super.hashCode(); result = 31 * result + mMinor; result = 31 * result + mMajor; result = 31 * result + mProximityUUID.hashCode(); return result; } public String getProximityUUID() { return mProximityUUID; } public ArrayList<UUID> getServiceUUIDs() { return mServiceUUIDs; } public void setServiceUUIDs(ArrayList<UUID> serviceUUIDs) { mServiceUUIDs = serviceUUIDs; } public Puck() {} public Puck(String name, int minor, int major, String proximityUUID, String address, ArrayList<UUID> serviceUUIDs) { this.mName = name; this.mMinor = minor; this.mMajor = major; this.mAddress = address; this.mProximityUUID = proximityUUID; this.mServiceUUIDs = serviceUUIDs; } public String getFormattedUUID() { return String.format("%s - %s - %s", mProximityUUID, Integer.toHexString(mMajor), Integer.toHexString(mMinor)); } public String getAddress() { return mAddress; } public void setAddress(String mAddress) { this.mAddress = mAddress; } }