bytes int name
-------------------------------------------------------------
1000000000010010100010011 //16786707 <- Device
10000 //16 <- SOURCE_CLASS_JOYSTICK
10000000001 //1025 <- SOURCE_GAMEPAD
1000000000000000000010000 //16777232 <- SOURCE_JOYSTICK
The device is a GamePad, a Joystick, and a class_joystick (guess that means its a joystick).
You'll need to use AND to check what:
int device = 16786707;
boolean is_source_class_joystick = ((device & SOURCE_CLASS_JOYSTICK) == SOURCE_CLASS_JOYSTICK);
boolean is_source_gamepad = ((device & SOURCE_GAMEPAD) == SOURCE_GAMEPAD);
boolean is_source_joystick = ((device & SOURCE_JOYSTICK) == SOURCE_JOYSTICK);
This should work.
Edit: I also checked, it can also be considered a keyboard and a mouse.