There is an issue: you have 
	public List<String> getPropertyNames();
	public Property getProperty(SelectedItem selectedItem, String propertyName);
	public List<Property> getProperties(SelectedItem selectedItem);

the idea was to replace the last method with the first 2.
It would be useful to log with trace, for each property, which value.

coordinate with mariana. you should delete the method after she has done the modification, in order to not have conflicts.