setBeanPropertyIfExistsAndNotSet(source, "configurationSourceName", getConfigurationSourceName());
setBeanPropertyIfExistsAndNotSet(source, "configurationWorkspaceName", getConfigurationWorkspaceName());
setBeanPropertyIfExistsAndNotSet(source, "configurationPath", stringFactory.create(path));
// Now set all the properties that we can, ignoring any property that doesn't fit the pattern ...
Reflection reflection = new Reflection(source.getClass());
for (Map.Entry<Name, Property> entry : properties.entrySet()) {
Name propertyName = entry.getKey();
Property property = entry.getValue();
String javaPropertyName = propertyName.getLocalName();
if (property.isEmpty()) continue;
Object value = null;
Method setter = null;
try {
setter = reflection.findFirstMethod("set" + javaPropertyName, false);
if (setter == null) continue;
// Determine the type of the one parameter ...
Class<?>[] parameterTypes = setter.getParameterTypes();
if (parameterTypes.length != 1) continue; // not a valid JavaBean property
Class<?> paramType = parameterTypes[0];