I have noticed that there are two ways to cast objects (the difference is the placement of the outer parenthesis):
1. SimpleType simpleType = ((SimpleType)
They are doing two totally unrelated things: first is dowcasting the result of getType() and the second is downcasting the property variable. The first one looks like the one you need, given the type of the left-hand side. Note that in the first example you have extra parentheses, this would be enough, and is how this is idiomatically written:
SimpleType simpleType = (SimpleType) property.getType();