}
// NOTE: We can't just leverage PropertyMapToCompositeValueSupportAdapter, because we have to skip the "name" map member.
private void populateMetaValueFromProperty(PropertyMap propMap, MetaValue metaValue,
PropertyDefinitionMap propDefMap) {
CompositeValueSupport compositeValue = (CompositeValueSupport) metaValue;
for (String mapMemberPropName : propMap.getMap().keySet()) {
if (mapMemberPropName.equals("name"))
continue;
Property mapMemberProp = propMap.get(mapMemberPropName);
PropertyDefinition mapMemberPropDef = propDefMap.get(mapMemberPropName);
MetaType mapMemberMetaType = compositeValue.getMetaType().getType(mapMemberPropName);
if (mapMemberMetaType == null) {
// this will occur when new map properties are added since they are not present
// in the original metaValue which we are using
mapMemberMetaType = SimpleMetaType.STRING;
}
PropertyAdapter adapter = PropertyAdapterFactory.getPropertyAdapter(mapMemberMetaType);
MetaValue mapMemberMetaValue = adapter.convertToMetaValue(mapMemberProp, mapMemberPropDef,
mapMemberMetaType);
compositeValue.set(mapMemberPropName, mapMemberMetaValue);
}
}