* @param property a not {@code null} property
* @return {@code null} if no value was set for {@code property}
*/
public static Comparable<Object> getComparablePropertyValue(Property property) {
PropertyValue value = property.getValue();
Meaning meaning = property.getMeaningEnum();
for (Type<?> type : typeMap.values()) {
if (type.hasPropertyValue(value) &&
(meaning == Meaning.INDEX_VALUE || meaning == type.getMeaning()) &&
type.getComparableFunction() != null) {
return toComparableObject(