2020 * product ID and serial number is globally unique.
2121 * </p>
2222 */
23- public class USBDeviceFilter {
24- private Integer vendorId_ ;
25- private Integer productId_ ;
26- private Integer classCode_ ;
27- private Integer subclassCode_ ;
28- private Integer protocolCode_ ;
29- private String serialNumber_ ;
23+ public class USBDeviceFilter implements USBDevicePredicate {
24+ private Integer vid ;
25+ private Integer pid ;
26+ private Integer deviceClass ;
27+ private Integer deviceSubclass ;
28+ private Integer deviceProtocol ;
29+ private String serialString ;
3030
3131 /**
3232 * Creates a new instance.
@@ -41,8 +41,8 @@ public USBDeviceFilter() {
4141 * @param productId product ID
4242 */
4343 public USBDeviceFilter (int vendorId , int productId ) {
44- vendorId_ = vendorId ;
45- productId_ = productId ;
44+ vid = vendorId ;
45+ pid = productId ;
4646 }
4747
4848 /**
@@ -53,9 +53,9 @@ public USBDeviceFilter(int vendorId, int productId) {
5353 * @param serialNumber serial number
5454 */
5555 public USBDeviceFilter (int vendorId , int productId , String serialNumber ) {
56- vendorId_ = vendorId ;
57- productId_ = productId ;
58- serialNumber_ = serialNumber ;
56+ vid = vendorId ;
57+ pid = productId ;
58+ serialString = serialNumber ;
5959 }
6060
6161 /**
@@ -64,7 +64,7 @@ public USBDeviceFilter(int vendorId, int productId, String serialNumber) {
6464 * @return vendor ID, or {@code null} if the vendor ID is not relevant for matching
6565 */
6666 public Integer vendorId () {
67- return vendorId_ ;
67+ return vid ;
6868 }
6969
7070 /**
@@ -73,7 +73,7 @@ public Integer vendorId() {
7373 * @param vendorId vendor ID, or {@code null} if the vendor ID is not relevant for matching
7474 */
7575 public void setVendorId (Integer vendorId ) {
76- vendorId_ = vendorId ;
76+ vid = vendorId ;
7777 }
7878
7979 /**
@@ -82,7 +82,7 @@ public void setVendorId(Integer vendorId) {
8282 * @return product ID, or {@code null} if the product ID is not relevant for matching
8383 */
8484 public Integer productId () {
85- return productId_ ;
85+ return pid ;
8686 }
8787
8888 /**
@@ -91,7 +91,7 @@ public Integer productId() {
9191 * @param productId product ID, or {@code null} if the product ID is not relevant for matching
9292 */
9393 public void setProductId (Integer productId ) {
94- productId_ = productId ;
94+ pid = productId ;
9595 }
9696
9797 /**
@@ -100,7 +100,7 @@ public void setProductId(Integer productId) {
100100 * @return class code, or {@code null} if the class code is not relevant for matching
101101 */
102102 public Integer classCode () {
103- return classCode_ ;
103+ return deviceClass ;
104104 }
105105
106106 /**
@@ -109,7 +109,7 @@ public Integer classCode() {
109109 * @param classCode class code, or {@code null} if the class code is not relevant for matching
110110 */
111111 public void setClassCode (Integer classCode ) {
112- classCode_ = classCode ;
112+ deviceClass = classCode ;
113113 }
114114
115115 /**
@@ -118,7 +118,7 @@ public void setClassCode(Integer classCode) {
118118 * @return subclass code, or {@code null} if the subclass code is not relevant for matching
119119 */
120120 public Integer subclassCode () {
121- return subclassCode_ ;
121+ return deviceSubclass ;
122122 }
123123
124124 /**
@@ -127,7 +127,7 @@ public Integer subclassCode() {
127127 * @param subclassCode subclass code, or {@code null} if the subclass code is not relevant for matching
128128 */
129129 public void setSubclassCode (Integer subclassCode ) {
130- subclassCode_ = subclassCode ;
130+ deviceSubclass = subclassCode ;
131131 }
132132
133133 /**
@@ -136,16 +136,16 @@ public void setSubclassCode(Integer subclassCode) {
136136 * @return protocol code, or {@code null} if the protocol code is not relevant for matching
137137 */
138138 public Integer protocolCode () {
139- return protocolCode_ ;
139+ return deviceProtocol ;
140140 }
141141
142142 /**
143143 * Sets the USB device protocol code.
144144 *
145145 * @param protocolCode protocol code, or {@code null} if the protocol code is not relevant for matching
146146 */
147- public void setProtocolCode_ (Integer protocolCode ) {
148- protocolCode_ = protocolCode ;
147+ public void setProtocolCode (Integer protocolCode ) {
148+ deviceProtocol = protocolCode ;
149149 }
150150
151151 /**
@@ -154,7 +154,7 @@ public void setProtocolCode_(Integer protocolCode) {
154154 * @return serial number, or {@code null} if the serial number is not relevant for matching
155155 */
156156 public String serialNumber () {
157- return serialNumber_ ;
157+ return serialString ;
158158 }
159159
160160 /**
@@ -163,7 +163,7 @@ public String serialNumber() {
163163 * @param serialNumber serial number, or {@code null} if the serial number is not relevant for matching
164164 */
165165 public void setSerialNumber (String serialNumber ) {
166- serialNumber_ = serialNumber ;
166+ serialString = serialNumber ;
167167 }
168168
169169 /**
@@ -173,27 +173,16 @@ public void setSerialNumber(String serialNumber) {
173173 * @return {@code true} if it matches, {@code false} otherwise
174174 */
175175 public boolean matches (USBDevice device ) {
176- if (vendorId_ != null && device .vendorId () != vendorId_ )
176+ if (vid != null && device .vendorId () != vid )
177177 return false ;
178- if (productId_ != null && device .productId () != productId_ )
178+ if (pid != null && device .productId () != pid )
179179 return false ;
180- if (serialNumber_ != null && !serialNumber_ .equals (device .serialNumber ()))
180+ if (serialString != null && !serialString .equals (device .serialNumber ()))
181181 return false ;
182- if (classCode_ != null && device .classCode () != classCode_ )
182+ if (deviceClass != null && device .classCode () != deviceClass )
183183 return false ;
184- if (subclassCode_ != null && device .subclassCode () != subclassCode_ )
184+ if (deviceSubclass != null && device .subclassCode () != deviceSubclass )
185185 return false ;
186- return protocolCode_ == null || device .protocolCode () == protocolCode_ ;
187- }
188-
189- /**
190- * Test if the USB devices matches any of the filter conditions.
191- *
192- * @param device the USB device
193- * @param filters a list of filter conditions
194- * @return {@code true} if it matches, {@code false} otherwise
195- */
196- public static boolean matchesAny (USBDevice device , List <USBDeviceFilter > filters ) {
197- return filters .stream ().anyMatch (filter -> filter .matches (device ));
186+ return deviceProtocol == null || device .protocolCode () == deviceProtocol ;
198187 }
199188}
0 commit comments