Don't use the Observer/Observable types, they're horribly designed. Instead,
you should make your own listener interfaces to solve this problem.
Create an interface
UsbDeviceListener that contains methods for the different kinds of events that can occur, for instance:
Your event class should be an immutable class that holds all the data related to the event, such as
vendorID and
productID.
Now all objects that want to listen to your USB class can just register their listeners with some
addUsbDeviceListener() method defined on your USB class.