Another solution to the problem would be to encode the UserData with multiple bits of information in a String. I could then break it up in decoding methods. It's a little more complex, but it may be more natural to the use of get/setUserData()?