At the moment the ResourceProxy holds a plain Map<String,Object> for its properties. As a start, it has worked pretty well. However, it leads to code that is a bit convoluted and not correct.
For instance, we have instanceof checks to determine the property type and multiplicity. And we probably fails to distinguish between a REFERENCE and a WEAKREFERENCE property, or a STRING and NAME property.