private static void adaptProperty(Property source, Property target, PropertyDefinition def, Object parent,
boolean adaptReadonlyProperties) {
PropertyType sourceType = conforms(source, def);
PropertyType targetType = conforms(target, def);
if (sourceType != null && sourceType != PropertyType.UNKNOWN &&
(sourceType == targetType || targetType == PropertyType.UNKNOWN)) {
switch (sourceType) {
case MAP:
adaptPropertyMap((AbstractPropertyMap) source, (AbstractPropertyMap) target,
(PropertyDefinitionMap) def, parent, adaptReadonlyProperties);
break;
case LIST:
adaptPropertyList((PropertyList) source, (PropertyList) target, (PropertyDefinitionList) def, parent,
adaptReadonlyProperties);
break;
case SIMPLE:
adaptPropertySimple((PropertySimple) source, (PropertySimple) target, (PropertyDefinitionSimple) def,
parent, adaptReadonlyProperties);
break;
case DYNAMIC:
}
}
}