Strange behaviour: `PropertyMetadata::getValue()` overloads parent class method and uses detected/passed getter to retrieve value from the object, but `PropertyMetadata::setValue()` still uses reflection defined in parent. Is it a bug or a feature?