summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--altosuilib/AltosDevice.java1
-rw-r--r--altosuilib/AltosUSBDevice.java17
2 files changed, 18 insertions, 0 deletions
diff --git a/altosuilib/AltosDevice.java b/altosuilib/AltosDevice.java
index 483d337b..a5a068b4 100644
--- a/altosuilib/AltosDevice.java
+++ b/altosuilib/AltosDevice.java
@@ -28,4 +28,5 @@ public interface AltosDevice {
public abstract boolean matchProduct(int product);
public abstract String getErrorString();
public SWIGTYPE_p_altos_file open();
+ public abstract boolean equals(Object obj);
}
diff --git a/altosuilib/AltosUSBDevice.java b/altosuilib/AltosUSBDevice.java
index f7aae38a..16a0e770 100644
--- a/altosuilib/AltosUSBDevice.java
+++ b/altosuilib/AltosUSBDevice.java
@@ -94,6 +94,23 @@ public class AltosUSBDevice extends altos_device implements AltosDevice {
return false;
}
+ public int hashCode() {
+ return getVendor() ^ getProduct() ^ getSerial();
+ }
+
+ public boolean equals(Object o) {
+ if (o == null)
+ return false;
+
+ if (!(o instanceof AltosUSBDevice))
+ return false;
+ AltosUSBDevice other = (AltosUSBDevice) o;
+
+ return getVendor() == other.getVendor() &&
+ getProduct() == other.getProduct() &&
+ getSerial() == other.getSerial();
+ }
+
static public java.util.List<AltosDevice> list(int product) {
if (!AltosUILib.load_library())
return null;