[BACKLOG-1498] Refactor. Add utility methods in model annotation definition

Isn't there a better way to do this? From the client side of things, (like in the test cases) you need to call up to four different functions to figure out what the tye is. It'll force us to create blobs of nested if-then-else. What if the type was an enumeration value? How about making the generic type of this class something like <T extends X> where X is a common interface which tells you the type?