// Optional properties are not exposed to clients using traditional JavaBean
// setters/getters (because there is way to represent an 'unset' value); for
// these properties, the impl can tell if the PropertySet is unset because
// this method will return null.
//
if (!map.containsPropertySet(propertySet))
{
PropertySet psAnnot = propertySet.getAnnotation(PropertySet.class);
if (psAnnot.optional())
return null;
}